gpt4 book ai didi

Android shouldShowRequestPermissionRationale 有错误吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:53 27 4
gpt4 key购买 nike

我认为有一个错误 shouldShowRequestPermissionRationale

代码是...

@Override
protected void onResume() {
super.onResume();
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_DENIED &&
ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) {
if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) ||
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) {
new AlertDialog.Builder(this)....show();
} else {
// do something...
}

首先安装了应用程序,我们不允许该权限。所以当 onResume 被调用时,AlertDialog 应该出现。但它没有出现...

如果我们进入应用程序的设置,并允许权限。所以我们播放应用程序代码(//做某事)。再次,我们进入应用程序的设置,拒绝权限。然后我们重新启动应用程序,出现 AlertDialog。

为什么应用会这样运行?

最佳答案

来自开发者文档:

shouldShowRequestPermissionRationale()

This method returns true if the app has requested this permission previously and the user denied the request.

Note: If the user turned down the permission request in the past and chose the Don't ask again option in the permission request system dialog, this method returns false.

问题是您在使用前没有请求权限

 ActivityCompat.requestPermissions();

因此它不显示对话框。

当您从“设置”手动授予权限或拒绝权限时,它假定您拒绝了该权限,这就是它显示警告对话框的原因。

关于Android shouldShowRequestPermissionRationale 有错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com