RequestPermissions 未显示对话框

Posted

技术标签:

【中文标题】RequestPermissions 未显示对话框【英文标题】:RequestPermissions not showing a dialog box 【发布时间】:2017-02-05 04:52:54 【问题描述】:

我发现了许多具有相同威胁的类似主题,但我仍然找不到解决我的问题的方法。我编写了这段代码来授予应用程序的写入权限,但没有显示对话框。我在监视器中显示“无写入权限”消息。

if(ContextCompat.checkSelfPermission(getContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) 
Log.i("permissions", "No writing permission");

ActivityCompat.requestPermissions(getActivity(), new String[]Manifest.permission.WRITE_EXTERNAL_STORAGE, 225);

我在 androidManifest 文件中添加了权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

更改了目标sdk targetSdkVersion 23,我正在使用android 6.0.1

编辑: 我也绑定了这段代码,但它仍然无法正常工作

requestPermissions(new String[]android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 225);

【问题讨论】:

您使用的是什么版本的设备? 我刚刚复制了你的代码,它工作正常。 【参考方案1】:

我也遇到过类似的情况。不要尝试使用片段中的ActivityCompat 调用它。而是使用片段中给定的requestPermissions 方法,例如

 requestPermissions(new String[]android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 225);

【讨论】:

【参考方案2】:

RequestPermissions 对话框仅在设备 >= 6.0 上的以下 2 种情况下不会显示:

1) 要么您已经授予了您所要求的类别中的任何危险权限。

2) 当对话框之前显示时,您点击了不再询问复选框。

【讨论】:

获得第 1 点的链接。developer.android.com/about/versions/oreo/…

以上是关于RequestPermissions 未显示对话框的主要内容,如果未能解决你的问题,请参考以下文章

Android M 权限对话框未显示

Activity.requestPermissions 与 ActivityCompat.requestPermissions

如何调试/重置 Android 6.0 权限?

如何在调用 requestPermissions 之前知道用户检查“不再询问”

requestPermissions在一个片段中

Flutter - 自定义警报对话框未显示