从Android 6.0(API级别23)开始,我们可以在运行时询问权限。但是,根据文档,所有权限仍然需要在AndroidManifest.xml中定义,因此在低于23的API中,这些权限将在安装该应用程序之前被授予。基于API级别的请求权限
我只希望在运行时请求ACCESS_FINE_LOCATION
权限 - 因为这是一个敏感权限,所以在安装之前请求它没有任何上下文会导致下载量下降。
我针对的是API级别11+的应用程序,所以我想知道是否有可能不要求旧版API中的ACCESS_FINE_LOCATION
权限(即,未在AndroidManifest中为23以上的API列出),并且只请求它为API 23 +。
更新
为了澄清,我想知道是否可以做到以下几点:
AndroidManifest.xml中
IF API_LEVEL>=23: {
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
}
ELSE:
{
}
在运行时,您可以通过版本把权限检查,如果版本> = 23比检查运行时权限,否则什么都不做....... –
@ Er.Arjunsaini,我不需要在AndroidManifest.xml中静态列出这个权限吗? – Ohad
“在所有版本的Android上,您的应用程序需要在其应用程序清单中声明正常和危险的权限,如声明权限中所述。“ – Ohad