***/
- 获取手机定位
- @return Location?
/
private fun getLastKnownLocation(): Location? {
var mLocationManager: LocationManager =
applicationContext.getSystemService(LOCATION_SERVICE) as LocationManager
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(
this,
Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
return null;
}
var providers: List = mLocationManager.getProviders(true);
var bestLocation: Location? = null;
for (provider in providers) {
var l: Location? = mLocationManager.getLastKnownLocation(provider);
if (l == null) {
continue;
}
if (bestLocation == null || l.accuracy < bestLocation.accuracy) {
bestLocation = l
}
}
if (bestLocation == null) {
var criteria: Criteria = Criteria();
criteria.accuracy = Criteria.ACCURACY_COARSE;
criteria.isAltitudeRequired = false;
criteria.isBearingRequired = false;
criteria.isCostAllowed = true;
criteria.powerRequirement = Criteria.POWER_LOW;
var provider = mLocationManager.getBestProvider(criteria, true);
if (!TextUtils.isEmpty(provider)) {
bestLocation = provider?.let { mLocationManager.getLastKnownLocation(it) };
}
}
Log.e(
“是不是ggppss----------”,
“1289” + bestLocation?.latitude + “—” + bestLocation?.longitude
)
return bestLocation;
}****