Android运行时棉花糖权限

Android运行时棉花糖权限,android,permissions,android-6.0-marshmallow,android-permissions,Android,Permissions,Android 6.0 Marshmallow,Android Permissions,谷歌在运行时允许权限,并允许用户允许或拒绝该权限 当用户安装应用程序时,权限应自动打开,不应要求用户打开 如何获得此功能 谢谢。这是不可能的。如果用户不允许权限,则应用程序无法访问与特定权限相关的资源。谷歌出于安全目的执行此操作。不可能在棉花糖上执行此操作,因为它完全基于运行时权限。它提高了用户的安全性。您的查询仅支持棉花糖以下的版本。请尝试将目标版本设为22,然后运行您的应用程序 当用户安装应用程序时,权限应自动打开,不应要求用户打开 使targetSdkVersion低于23。这不是一个可行

谷歌在运行时允许权限,并允许用户允许或拒绝该权限

当用户安装应用程序时,权限应自动打开,不应要求用户打开

如何获得此功能


谢谢。

这是不可能的。如果用户不允许权限,则应用程序无法访问与特定权限相关的资源。谷歌出于安全目的执行此操作。

不可能在棉花糖上执行此操作,因为它完全基于运行时权限。它提高了用户的安全性。您的查询仅支持棉花糖以下的版本。请尝试将目标版本设为22,然后运行您的应用程序

当用户安装应用程序时,权限应自动打开,不应要求用户打开

使targetSdkVersion低于23。这不是一个可行的长期解决方案,因为最终会有一些东西迫使您的手的targetSdkVersion为23或更高

你引用奥拉卡布作为你想要的行为的例子。OlaCabs的targetSdkVersion为22

我如何在棉花糖中设置默认权限,以便如果用户手动设置权限,并且在用户打开应用程序时再次设置权限,则权限应处于打开状态,并且不应向用户请求权限,而应直接打开权限


这是不可能的。例如,使用OlaCabs,在安装它之后但在运行它之前,我撤销了它访问联系人、位置、电话、短信和存储的权限。然后我运行了OlaCabs,它崩溃了,因为我已经撤销了它对位置数据的访问,OlaCabs的作者没有先检查他们是否有权限。OlaCabs不会神奇地导致这些权限被重新授予。

如果您能够做到这些,那么新的权限模型就没有任何意义了。最好将targetSdkVersion设置为小于23。你的应用程序将在安装时获得权限,但你无法阻止用户手动撤销这些权限。一旦用户授予权限,android系统不会一次又一次地请求权限,它只会询问你是否重新安装应用程序,直到用户允许为止,否则,与这些权限相关的任务将无法完成。祝您好运。在执行任务之前,请添加检查其相对权限的代码。好吧,我最初误读了您的问题,并且有点说错了,所以targetSdkVersion小于23时可能为1。不过,关于第二点,我真的不相信你-例如,Ola或Uber强制您授予位置权限,否则他们不允许您提出请求。可以这样做,但不能授予权限而不是运行时权限。我通过设置targetSdkVersion进行了尝试,但没有working@ArjunShah:那么你的应用程序还有其他问题。例如,您可能正在清单和build.gradle中设置targetSdkVersion,build.gradle中的值将获胜。此外,请确保完全卸载并重新安装该应用程序-当您降低targetSdkVersion时,构建过程应就此向您发出警告,并为您执行此操作。