什么时候要求运行时权限?

时间:2016-05-30 10:10:21

标签: java android android-studio permissions android-permissions

由于Android Marshmallow中引入了Runtime Permissions,我意味着应用新的方式来请求权限,我已阅读并理解危险权限以及如何检查它们并请求它们。

问题是,如果我有Activity包含Button来打开相机。 打开活动时是否检查并请求权限?或者单击按钮时?

请解释为什么建议使用您的方式。

3 个答案:

答案 0 :(得分:3)

  

打开活动时,是否检查并请求权限?或者单击按钮时?

如果<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <castle> <components> <component id="AFooNamedFoo" service="StackOwerflow.Program+IFoo, StackOwerflow" type="StackOwerflow.Program+Foo, StackOwerflow" lifestyle="Transient"> <parameters> <arg1>hello</arg1> <arg2>world</arg2> </parameters> </component> </components> </castle> </configuration> 的唯一目的是在点击按钮时拍照,我会在活动开启时请求权限。

如果Activity有其他角色,那么拍照按钮只是众多功能中的一个,我会在用户点击按钮时要求获得许可。

换句话说,一旦用户请求沿着(几乎)肯定需要许可的路径走下去,请求获得许可。

答案 1 :(得分:2)

根据我的说法,点击按钮时会要求允许打开相机

因为活动可以有许多可以请求相机,联系人,写入存储等的组件

  

所以您不能在活动开始时请求许可,但是当您点击按钮时请求相机许可

如果您想发送短信而不是询问何时需要在活动开始时发送短信。

Permissions Best Practices.

您可以下载官方示例应用here

希望你明白。

答案 2 :(得分:-1)

从Android SDK 23开始,系统权限分为正常和危险两类:

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

  • 危险权限可以让应用访问用户 机密数据。

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

有关详细信息,请参阅Normal and Dangerous Permissions

  

如果您的应用针对API 23,则需要询问用户是否存在危险   您需要权限(例如READ_CONTACT或READ_CALL_LOG等)   在运行时请求许可。