我应该在运行时询问哪些权限以及我不必在Android中询问运行时?

时间:2017-10-05 14:30:56

标签: android android-manifest

如何确定我应该在运行时询问哪些权限以及哪个权限足够'在清单中声明了什么?

4 个答案:

答案 0 :(得分:1)

来自the documentation

  

系统权限分为两类,普通危险

     
      
  • 正常权限不会直接影响用户的隐私。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。

  •   
  • 危险权限可让应用访问用户的机密数据。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。如果您列出了危险权限,则用户必须明确批准您的应用。

  •   

有关详细信息,请参阅normal permissionsdangerous permissions上的文档。

答案 1 :(得分:0)

危险权限应该在运行时询问,在清单中是否正常。您可以看到here的危险和普通权限列表。

来自docs

  

系统权限分为几个保护级别。他们俩   最重要的保护水平是正常的和   危险权限:

     

正常权限涵盖了您的应用需要访问数据的区域   应用程序沙箱外的资源,但是很少   对用户隐私或其他应用程序操作的风险。对于   例如,设置时区的权限是正常权限。如果   app声明它需要一个正常的权限,即系统   自动授予应用程序的权限。有关的完整列表   当前的正常权限,请参阅正常权限。

     

危险   权限涵盖应用程序需要数据或资源的区域   涉及用户的私人信息,或可能影响   用户存储的数据或其他应用程序的操作。例如,   读取用户联系人的能力是一种危险的许可。如果   一个应用程序声明它需要一个危险的权限,用户必须这样做   明确授予应用程序的权限。特殊权限   是一些不正常行为的权限   危险的权限。 SYSTEM_ALERT_WINDOW和WRITE_SETTINGS是   特别敏感,所以大多数应用程序不应该使用它们。如果一个应用程序   需要其中一个权限,它必须在中声明权限   显示,并发送请求用户授权的意图。该   系统通过显示详细的管理屏幕来响应意图   给用户。

     

有关如何请求这些权限的详细信息,请参阅   SYSTEM_ALERT_WINDOW和WRITE_SETTINGS参考条目。

答案 2 :(得分:0)

如果您的目标是Android Marshmallow及以上版本,则必须在运行时请求危险权限。您可以找到列表here。您还应该阅读this

答案 3 :(得分:0)

您应该始终将您要访问的每个权限都放在Manifest中。 Android Marshmallow之前的设备无法处理运行时权限,因此除非您仅定位Marshmallow及更高版本,否则此部分非常重要。

您无需在运行时询问任何“Normal Permissions”。只有指定为“危险”的权限才会自动提供。