【发布时间】:2016-07-02 07:44:49
【问题描述】:
从 Android 6.0(API 级别 23)开始,我们可以在运行时请求权限。但是,根据文档,仍然需要在 AndroidManifest.xml 中定义所有权限,因此在低于 23 的 API 中,将在安装应用程序之前授予这些权限。
我只想在运行时请求ACCESS_FINE_LOCATION 权限 - 因为这是一个敏感权限,所以在没有任何上下文的情况下在安装之前请求它会导致下载量减少。
我将我的应用程序定位到 API 级别 11+,所以我想知道是否可以不在旧 API 中请求 ACCESS_FINE_LOCATION 权限(即对于 23 岁以上的 API,不在 AndroidManifest 中列出它),并且只请求它适用于 API 23+。
更新
为了澄清,我想知道是否可以执行以下操作:
AndroidManifest.xml
IF API_LEVEL>=23: {
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
}
ELSE:
{
}
【问题讨论】:
-
在运行时,如果 version>=23 则按版本检查权限,而不是检查运行时权限,否则什么都不做......
-
@Er.Arjunsaini,我不需要在 AndroidManifest.xml 中静态列出这些权限吗?
-
"在所有版本的 Android 上,您的应用都需要在其应用清单中声明其所需的正常权限和危险权限,如声明权限中所述。"
-
如果您尝试同时使用 NETWORK_PROVIDER 和 GPS_PROVIDER,那么您需要请求 ACCESS_FINE_LOCATION 权限,因为它包含两个提供者的权限。
-
简单直接的答案:否。
标签: android android-manifest android-permissions