系统应用权限问题

时间:2018-06-25 06:24:11

标签: android

我已经创建了一个使用固件密钥签名的系统应用程序,启动应用程序ex时,它正在征求用户的许可。用于存储/位置。我如何在安装时授予权限,而在运行时不要求任何权限?

2 个答案:

答案 0 :(得分:2)

  

我如何在安装时授予许可,不会要求任何许可   运行时获得许可?

如果您的应用是在操作系统版本> = Android M(API 23)上运行的,并且targetSdkVersion设置为> = 23,则必须将权限归入危险类别(存储/位置权限归入该类别)在运行时被授予。甚至系统应用程序也不能免除此请求。

对于通用应用程序,在安装时仅授予普通级别权限。由于您的应用程序是使用固件密钥签名的,因此它获得的好处是,在安装时将授予普通级别和签名级别的权限。有关更多详细信息,请参见official document

答案 1 :(得分:1)

  

我如何在安装时授予权限,而在运行时不要求任何权限?

AFAIK ,如果您使用应用程序 targetSdkVersion >=23 ,则是不可能的,因为api 23用户会在运行时而不是在安装应用程序时授予所有危险权限

将targetSdkVersion设置为23以下是个坏主意,因为请阅读此Target API level requirement from late 2018

  • bindService()的隐式意图不再受支持(Android 5.0)

  • 运行时权限(Android 6.0)

  • 默认情况下,安全连接(Android 7.0)

  • 不信任用户添加的CA
  • 未经明确的用户批准(Android 8.0)

  • ,应用无法访问用户帐户