我正在实施应用程序权限流以使用地理位置。我通过片段中的requestPermissions()请求了ACCESS\u FINE\u LOCATION和ACCESS\u rough\u LOCATION。
requestPermissions(
arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION),
PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION
)
companion object {
private const val PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1
:
}
我在片段中收到了onRequestPermissionsResult()的请求权限结果。
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION -> {
if (grantResults.isNotEmpty() &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// User granted permission in system dialog
} else {
// User denied permissions
}
}
}
}
但奇怪的是,onRequestPermissionsResult()只收到了一个权限,即第二个参数中的ACCESS\u rough\u LOCATION作为权限:Array。即使在系统对话框中选择了“允许”,checkSelfPermission()也返回false。
// this condition returns false after receiving permission result on onRequestPermissionsResult()
ContextCompat.checkSelfPermission(requireContext(),
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(requireContext(),
Manifest.permission.ACCESS_COARSE_LOCATION) {
}
我想知道为什么onRequestPermissionsResult()只收到ACCESS\u rough\u LOCATION作为结果,即使我在调用requestPermissions()时通过提供ACCESS\u rough\u LOCATION、ACCESS\u FINE\u LOCATION数组来请求多个权限。
你能解释一下为什么权限请求只返回单个权限结果吗?
提前谢谢你的帮助。
您只需使用单个权限访问\u FINE\u位置。你不需要两者都用。因为您的请求权限包括访问精细位置和粗略位置。
https://developer.android.com/training/location/retrieve-current#Permission
对于处理多个权限,我强烈建议使用下面的库来完美地处理每个场景。
德克斯特:com。卡鲁米:德克斯特:6#
对于您可以使用的多个权限:
Dexter.withContext(this)
.withPermissions(
Manifest.permission.CAMERA,
Manifest.permission.READ_CONTACTS,
Manifest.permission.RECORD_AUDIO
).withListener(new MultiplePermissionsListener() {
@Override public void onPermissionsChecked(MultiplePermissionsReport report) {/* ... */}
@Override public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {/* ... */}
}).check();
祝你好运
我想知道如何在单个请求上添加多个权限。这是关于Marshmallow版本的Android。
问题内容: 嗨,我正在更新我的应用程序贾夫纳神庙。使其可以支持Android M设备(v 6.0及更高版本)。 有没有一种方法可以一次请求多个权限。例如:我想获得同时读取手机状态和位置信息的权限。 通过这种方式,我可以一一请求权限。但是我想在应用程序启动时立即放下两个权限。 请给我一些建议。Tnx。 问题答案: 有没有办法我可以一次请求多个权限 在您要传递给的许可中放置多个权限。 例如,在这个示例
需要一些关于iOS开发的帮助。Swift 5 在swift 5中,有没有办法将3个系统权限警报(相机、麦克风和照片)合并在一个警报中? 使用AVCaptureDevice访问相机和麦克风,使用PHPhotoLibrary访问照片...
示例(忘记了google应用程序的名称:() 应用程序需要短信、联系人和摄像头 应用程序要求我激活短信,激活联系人,然后再激活相机(并做了一个对话框1-3页)。所以这个谷歌应用程序调用了所有三个必需的权限,我的问题是我如何才能实现相同的?
我想申请以下权限:。根据这个答案,我是这样申请权限的: 问题是我的应用程序只请求存储权限没有别的。 和是未请求或授予的权限。我如何按顺序询问所有权限? 以下是未授予和权限的证明:
HttpURLConnection使我的应用程序崩溃,因为即使我在清单文件中使用标记,也没有授予internet权限