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 未显示对话框的主要内容,如果未能解决你的问题,请参考以下文章
Activity.requestPermissions 与 ActivityCompat.requestPermissions