我正在应用程序中使用LocationServices
。在使用位置服务之前,我试图验证具有所需设置的位置是否为ON,但是我面临的问题是SettingsClient.checkSettings
始终为failing
。请查看我的LocationRequest
和LocationSettingRequest
构建器:
LocationRequest
mLocationRequest = LocationRequest()
mLocationRequest.interval = interval
mLocationRequest.fastestInterval = interval
Log.v(TAG, "distance => $distance")
if(distance > 0) {
mLocationRequest.smallestDisplacement = distance
}
mLocationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
buildLocationSettingsRequest()
LocationSettingRequestBuilder
private fun buildLocationSettingsRequest() {
val builder = LocationSettingsRequest.Builder()
builder.addLocationRequest(mLocationRequest)
mLocationSettingsRequest = builder.build()
mSettingsClientInit = true
}
而且我要求提供checkSettings
为>>
mSettingsClient.checkLocationSettings(mLocationSettingsRequest) .addOnSuccessListener(this, object : OnSuccessListener<LocationSettingsResponse> { override fun onSuccess(locationSettingsResponse: LocationSettingsResponse) { Log.i(TAG, "LocationManager: All location settings are satisfied."); mLocationCallback?.let { fusedLocationClient?.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper()); } // updateUI(); } }) .addOnFailureListener(this, object : OnFailureListener { override fun onFailure(e: Exception) { Log.v(TAG, "Request PErmission failure"); var statusCode = (e as ApiException).getStatusCode() when (statusCode) { LocationSettingsStatusCodes.RESOLUTION_REQUIRED -> { try { // Show the dialog by calling startResolutionForResult(), and check the // result in onActivityResult(). var rae = e as ResolvableApiException; rae.startResolutionForResult(this@BaseLocationActivity, REQUEST_CHECK_SETTINGS); } catch (sie: IntentSender.SendIntentException) { Log.v(TAG, "PendingIntent unable to execute request."); } } LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE -> { mRequestingLocationUpdates = false; Log.v(TAG, "Settings change unavailable."); } } } } )
始终是
onFailure
的addOnFailureListener
。谁能帮助我,这可能是什么问题?此设置对话框显示“确定”以启用设置,我按“确定”,再次出现与onFailure回调相同的对话框。
[发生在某些设备上,而不是在所有设备上。
我正在应用程序中使用LocationServices。在使用位置服务之前,我试图验证具有必需设置的位置是否为ON,但是我面临的问题是SettingsClient ....
您好,请遵循此代码来解决您的问题,我在此类的帮助下添加了GPSUtils类,您可以轻松管理GPS。