ActivityCompat.requestPermissions不显示对话框

6
在 AndroidManifest.xml 文件中:
<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />
<uses-permission-sdk-m android:name="android.permission.ACCESS_FINE_LOCATION"/>

在PreActivity.java文件中

if (PermissionChecker.checkSelfPermission(preActivity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    if (ActivityCompat.shouldShowRequestPermissionRationale(preActivity, Manifest.permission.ACCESS_FINE_LOCATION)){
        setDisplay();

    } else {
        // show dialog here
        ActivityCompat.requestPermissions(preActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_PERMISSION_CODE);

    }
} else {
    ~~~~~
}

在调用requestPermissions()之后,没有显示确认对话框就会调用onRequestPermissionsResult。

有人知道问题出在哪里,或者如何显示这个对话框吗?

谢谢。


即使您卸载应用程序并从头安装,这种情况是否仍会发生? - Joao Sousa
你确定你还没有授予应用程序权限吗? - SMR
是的,这种情况确实发生过。我已经尝试重新安装很多次,但问题并没有解决... - dti-noue
1
你是不是想输入 <uses-permission-sdk-23>?如果之前已经显示过对话框并被用户拒绝并勾选了“不再显示”,则对话框也不会再次显示。 - Eugen Pechanec
1
请使用uses-permission-sdk-23代替已弃用的uses-permission-sdk-m,并进行完整的应用程序重新安装,不要升级。你使用的手机版本是多少? - Anoop M Maddasseri
显示剩余7条评论
1个回答

0

这可能是因为您已经向您的应用程序授予了所需的权限。

为了从头开始测试,请先卸载您的应用,然后再尝试。这样之前授予的所有权限都将被撤销。


感谢回答,SMR。 但是很抱歉,问题还没有得到解决。 我在我的应用程序启动时调用了它,如果我在接下来使用 GPS 调用一个方法,就会出现 SecurityException,导致我的应用程序被强制终止。 - dti-noue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接