[英]Require permission only for older android versions: maxSdkVersion does not work?
我想仅为旧设备提供一些权限以实现兼容性。 所以我做了一些研究,发现这里 :
机器人:maxSdkVersion
应用此权限的最高API级别。 如果从某个API级别开始不再需要您的应用所需的权限,则设置此属性非常有用。例如,从Android 4.4(API级别19)开始,当您的应用想要写入外部存储上自己的应用程序特定目录(getExternalFilesDir()提供的目录)时,您的应用不再需要请求WRITE_EXTERNAL_STORAGE权限。 。 但是,API级别18及更低级别需要权限。 因此,您可以声明此权限仅在API级别18之前需要,声明如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
我试图实现它,但它没有用。 所以我建立了这个简单的测试:
<uses-permission
android:name="android.permission.WRITE_SMS"
android:maxSdkVersion="3" />
据我所知,只有API级别为1-3的设备才需要此权限,但即使在API 18设备上,我也会收到此权限请求。 我有什么不对或者这个功能坏了吗?
在API级别19中添加了maxSdkVersion
属性( 文档应该已经提到过 )。 参考。 :
为
<uses-permission>
引入maxSdkVersion这样,应用程序可以在操作系统的更高版本上运行时自动落下其权限请求,这些权限不再相关,但可能会对用户造成警告。 一个典型的例子是WRITE_EXTERNAL_STORAGE,从KLP开始,对于一个应用程序来说,仅仅为了满足自己的大数据需求而不需要在多个应用程序之间进行实际的文件系统共享。
错误9761041
更改ID: I60130af3a108fe4a750c356038a1c8cb897e9c8b (丢失,可以是Google内部更改)
看起来Android 4.4当时还没有被命名为KK :)
在具有Android 5.0.2的HTC上,外部存储在拥有权限和限制时失败: android.permission.WRITE_EXTERNAL_STORAGE
和maxSdkVersion = 18
。 所以我需要将maxSdkVersion更改为22。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.