通过范围目录访问开通权限是一种更简单的方法,但是对话框将显示一个名为“不要再问”的复选框。如果用户选择不要再问,并拒绝请求,所有未来的请求从您的应用程序给定的目录将被自动拒绝,没有请求UI将呈现给用户。应用程序无法获取权限对话框。
我们如何处理这件事?
我认为您需要做的是使用shouldshowRequestPermissionRegulation(String)方法,如果用户拒绝该权限并选中“不再询问”,它将返回false。
您应该做的是显示一个警报,解释用户为什么需要该权限或实施回退,如禁用某些功能。
希望能有所帮助。
如果用户已勾选“不再询问”,则无法显示其他权限对话框
但是,您可以帮助用户并打开应用程序的设置,用户可以在其中手动启用所需的权限。
要做到这一点,你需要启动一个意图,类似于这样:
public void openAppSettings() {
Uri packageUri = Uri.fromParts( "package", getApplicationContext().getPackageName(), null );
Intent applicationDetailsSettingsIntent = new Intent();
applicationDetailsSettingsIntent.setAction( Settings.ACTION_APPLICATION_DETAILS_SETTINGS );
applicationDetailsSettingsIntent.setData( packageUri );
applicationDetailsSettingsIntent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
getApplicationContext().startActivity( applicationDetailsSettingsIntent );
}
现在,为了知道用户何时勾选了“不再询问”复选框是另一回事,可以用这个答案来完成。
有没有办法改变这个标志?
开发人员不能更改该标志。否则,拥有复选框就没有意义了,因为开发人员会通过更改标志来忽略它。
但是,您的问题指出了作用域目录访问中的一个相当大的缺陷:用户更改该标志的能力有限。设置中似乎没有地方可以更改此状态,特别是用户可以手动授予被拒绝的运行时权限的方式。
在运行7.1预览版的Nexus 5X上,“清除数据”将重置此标志,尽管这会产生更广泛的影响。在运行7.1的Google Pixel和运行Android 7.0的Nexus 5X上,即使完全卸载应用程序,也不会重置此标志。
我已经对此提交了错误报告。我怀疑这种情况在短期内会有很大改善——充其量,他们可能会解决这个问题,这样“清晰数据”就能可靠地工作。
我想知道“不再问一遍”复选框布尔标志存储在哪里,以及如何清除它的值?不一定是编程的,而是手动的-通过设置,命令或一些工具。尝试清除应用程序数据,卸载,卸载和清除,尝试手动切换权限来回,甚至尝试为模拟器设置一个更新的Marshmallow映像,但没有运气!
通过作用域目录访问授予权限是一种更简单的方法,但Dialog将显示一个名为“不再询问”的复选框。如果用户选择Don't ask again并拒绝请求,那么以后所有从您的app对给定目录的请求都将被自动拒绝,并且不会向用户呈现任何请求UI。如果用户后悔或误打了该复选框,应用程序如何补救?应用程序无法获得权限对话框。 我们该怎么处理?
但是,无论我拒绝多少次权限,我都不能在权限对话框中看到“永远不要再问”复选框,而且ShowRequestPermissionRationale总是返回false。 有什么不对劲吗?
我想知道“永远不要再问”复选框布尔标志存储在哪里,如何清除它的值?不一定是通过编程,而是手动--通过设置、命令或某种工具。尝试清除应用程序数据,卸载,卸载和清除,尝试手动切换权限开/关来回,甚至尝试为模拟器设置一个更新的Marshmallow图像,但没有运气!
我正试图让我的应用程序为新的Android M权限更改做好准备,发现了一些奇怪的行为。我的应用程序使用相机意图机制,允许用户从相机中获得一张照片。但是在另一个活动中,需要使用具有camera权限的camera本身(因为库依赖项card.io需要这样做)。 这是我用来让用户用相机点击一张照片和/或选择一张图像的代码 我在活动中单击按钮时调用。当我没有相机权限在我的应用程序,它的工作很好,但与添加,我
我正在开发一个使用USB附件的应用程序。当我将设备连接到arduino时,它要求usb许可,并且在对话框中有复选框“默认使用”。当我检查并按下“确定”时,它应该会保存许可,并且不再询问我,但每次我连接USB时它都在询问许可。我想保存权限有什么方法可以保存这个吗? 我的代码看起来像 Android清单文件看起来 附件过滤器就像 我的广播接收器代码 和设置附件代码