由于Android Marshmallow中引入了Runtime Permissions,我意味着应用新的方式来请求权限,我已阅读并理解危险权限以及如何检查它们并请求它们。
问题是,如果我有Activity
包含Button
来打开相机。
打开活动时是否检查并请求权限?或者单击按钮时?
请解释为什么建议使用您的方式。
答案 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)
根据我的说法,点击按钮时会要求允许打开相机。
因为活动可以有许多可以请求相机,联系人,写入存储等的组件
所以您不能在活动开始时请求许可,但是当您点击按钮时请求相机许可
如果您想发送短信而不是询问何时需要在活动开始时发送短信。
您可以下载官方示例应用here。
希望你明白。答案 2 :(得分:-1)
从Android SDK 23开始,系统权限分为正常和危险两类:
正常权限不会直接影响用户的隐私。如果你的 应用程序列出其清单中的正常权限,系统授予 自动许可。
危险权限可以让应用访问用户 机密数据。
如果您的应用在其清单中列出了正常权限,系统会自动授予权限。如果您列出了危险权限,则用户必须明确批准您的应用。
有关详细信息,请参阅Normal and Dangerous Permissions。
如果您的应用针对API 23,则需要询问用户是否存在危险 您需要权限(例如READ_CONTACT或READ_CALL_LOG等) 在运行时请求许可。