【发布时间】:2021-02-07 20:54:57
【问题描述】:
有什么方法可以知道 LocationSettingsStatusCodes 是否等于 RESOLUTION_REQUIRED 而不必一直调用 mSettingsClient.checkLocationSettings?可能来自 onLocationChanged 监听器的位置对象?
mSettingsClient.checkLocationSettings(mLocationSettingsRequest).addOnSuccessListener(mActivity,
new OnSuccessListener<LocationSettingsResponse>() {
@Override
public void onSuccess(LocationSettingsResponse locationSettingsResponse) {
Log.i(this.getClass().getName(), "Location settings ok");
mFusedProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper()).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
});
}
}).addOnFailureListener(mActivity, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
int statusCode = ((ApiException) e).getStatusCode();
if(statusCode == LocationSettingsStatusCodes.RESOLUTION_REQUIRED){
//Location settings not satisfied.
try {
// Cast to a resolvable exception.
ResolvableApiException resolvable = (ResolvableApiException) e;
resolvable.startResolutionForResult(
mActivity,
AppCommand.REQUEST_GOOGLE_ACCURACY);
} catch (IntentSender.SendIntentException ex) {
Log.e(this.getClass().getName(), "SendIntentException " + e.getLocalizedMessage());
}
}
Log.e(this.getClass().getName(), "Check location permission failed: " +e.getLocalizedMessage());
}
}
);
【问题讨论】:
标签: android gps location google-location-services