#android #kotlin #permissions #android-permissions
Вопрос:
Привет, у меня проблема с разрешением ACCESS_COARSE_LOCATION в приложении для Android. Я добавил разрешение в манифест:
<!-- Required for Nearby Connections API -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
и запросил разрешение в моем методе OnStart() :
override fun onStart() {
super.onStart()
requestPermissions(arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION),
REQUEST_CODE_PERMISSIONS)
}
и проверил, предоставлено ли оно:
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.ACCESS_COARSE_LOCATION
) == PackageManager.PERMISSION_GRANTED
) {
mConnectionsClient.startDiscovery(
SERVICE_ID,
mEndpointDiscoveryCallback,
DiscoveryOptions.Builder().setStrategy(Strategy.P2P_STAR).build()
)
.addOnSuccessListener {
debug("Success startDiscovery: $it")
}
.addOnFailureListener {
debug("Failure startDiscovery: $it")
}
}
также, когда я проверяю, предоставлено ли разрешение, оно говорит, что да, но по-прежнему показывает ошибку:
Failure startDiscovery: com.google.android.gms.common.api.ApiException: 8034: MISSING_PERMISSION_ACCESS_COARSE_LOCATION
У кого-нибудь есть какие-нибудь идеи, в чем может быть проблема?
Ответ №1:
Убедитесь, что в настройках вашего тестового устройства не отключено глобальное «Местоположение».
Даже если вы запросите и впоследствии проверите, чтобы убедиться, что вам были предоставлены все правильные разрешения для начала фактического вызова обнаружения
Nearby.getConnectionsClient(...).startDiscovery(...)
все равно вернется
com.google.android.gms.common.api.ApiException: 8034: MISSING_PERMISSION_ACCESS_COARSE_LOCATION