Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅对较旧的android版本要求权限:maxSdkVersion不工作?_Android_Android Manifest_Android Permissions - Fatal编程技术网

仅对较旧的android版本要求权限:maxSdkVersion不工作?

仅对较旧的android版本要求权限:maxSdkVersion不工作?,android,android-manifest,android-permissions,Android,Android Manifest,Android Permissions,为了兼容性,我只想对旧设备授予一些权限。所以我做了一些研究,发现: android:maxSdkVersion 应授予应用程序此权限的最高API级别。如果从某个API级别开始不再需要应用程序所需的权限,则设置此属性非常有用 例如,从Android 4.4(API级别19)开始,当您的应用程序希望写入外部存储上自己的应用程序特定目录(getExternalFilesDir()提供的目录)时,您的应用程序不再需要请求WRITE_EXTERNAL_STORAGE权限。但是,API级别18及以下的用户需

为了兼容性,我只想对旧设备授予一些权限。所以我做了一些研究,发现:

android: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设备上,我也会收到此权限请求。我是不是出了什么问题,或者此功能是否已损坏?

maxSdkVersion
属性已添加到API级别19中(文档应该已经提到了这一点):

这样,应用程序可以自动终止其权限请求 在没有这些权限的更高版本的操作系统上运行时 不再相关,但可能会提醒用户。典范 是外部存储器,从KLP开始,应用程序不再需要它 要仅将外部存储卷用于其自身的大数据需求, 无需在多个应用程序之间实际共享文件系统

错误9761041

变更Id:(缺失,可能是谷歌内部变更)


看起来Android 4.4当时还没有命名为KK:)

在我的HTC上,Android 5.0.2外部存储在具有以下权限和限制时失败:
Android.permission.WRITE_external_STORAGE
maxSdkVersion=18

所以我需要将maxSdkVersion更改为22

添加对清单的权限。不用担心API级别。如果在较新版本中,该权限不需要,则将被忽略。android:maxSdkVersion=“3”,您的设备是否需要该权限?文档中给出的代码用于
WRITE\u EXTERNAL\u STORAGE
而不是“WRITE\u SMS”。@PankajKumar好的,我的代码不使用它,但用户可能认为我用它做了坏事,所以我只想使用一组最小的权限。是的,这只是一个例子,它应该也适用于其他权限,不是吗?。看起来Android 4.4当时还没有命名为KK:)似乎没有
minSdkVersion
。。奇怪。例如,
android.permission.READ_EXTERNAL_STORAGE
仅从4.4开始需要读取文件,例如“open with”数据过滤方案。请注意,虽然maxSdkVersion在android操作系统中工作正常,但Play Store根本无法识别它,并将继续报告所有标记有此标志的权限为新权限!它还将请求用户在包含该标志的每个后续更新上确认此“新”权限!这已经在2年前报告给谷歌了,到目前为止还没有修复@谢谢。你能把那个bug报告的链接贴出来吗?也许有人会想启动/升级它来帮助加速修复。Play Store没有bug跟踪,尽管我报告了它,但正如您将看到的,Android开发团队并不太关心它!实际上有3个报告:,是的,很抱歉没有更新这篇文章。该问题已在Play Store 6.0.5中解决,于2016年1月1日或更早时间提供。我已经成功发布了带有此标志的应用程序,没有任何问题!我在这个确切的设备和版本上也有这个问题,但出于某种原因,通过POC访问外部存储不会失败。这一定是应用程序本身的原因,但我找不到什么。你能在你的设备上试用这个应用吗:嗨,谢谢你,很抱歉回答晚了。但我现在没有时间:-你能考虑主演报道的问题吗?呵呵,我可以主演它…但我甚至不知道我在演什么。。没有时间去回忆或弄清楚我主要关心的是什么…:-关于你发现的这个问题。我在同一台设备上得到了确切的问题。