【发布时间】:2019-08-16 13:53:35
【问题描述】:
我正在请求访问 Fragment 中 GPS 位置的权限,但是当我拒绝权限时 - 每次都会重新加载片段。当我接受许可时没关系,片段不会重新加载。
它以前工作得很好,但开始像这样。我已经在不同的设备上对其进行了测试:结果相同。可能是什么问题?
在清单中:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
override fun checkAndAskPermissions() {
val permission = Manifest.permission.ACCESS_FINE_LOCATION
if (ContextCompat.checkSelfPermission(context!!, permission) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(arrayOf(permission), LOCATION_REQUEST_CODE)
} else {
presenter.onPermissionsReceived()
}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
LOCATION_REQUEST_CODE -> {
if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
presenter.onPermissionsReceived()
} else {
presenter.onPermissionsDenied()
}
}
}
}
【问题讨论】:
-
您应该在
presenter类onPermissionsDenied函数上检查您的代码。 -
我尝试删除该行,但结果相同,onRequestPermissionResult 方法有问题
-
有趣....
标签: android kotlin permissions gps