当前位置: 首页 > 知识库问答 >
问题:

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

仲孙小云
2023-03-14

为了兼容性,我想要一些只适用于旧设备的权限。所以我做了一些研究,在这里发现了这个:

Android:maxsdkversion
将此权限授予应用程序的最高API级别。如果从某个API级别开始不再需要应用程序所需的权限,则设置此属性非常有用。

例如,从Android4.4(API Level19)开始,当您的应用程序想要写入外部存储中自己的特定于应用程序的目录(由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的设备才需要此权限,但即使在API18设备上,我也可以获得此权限请求。是我出了什么问题还是这个功能坏了?

共有1个答案

唐昊焜
2023-03-14

在API级别19中添加了maxsdkversion属性(文档应该提到这一点)。参考:

引入maxSdkVersion

这样,当应用程序在操作系统的更新版本上运行时,这些权限不再相关,但可能会引起用户的警觉,应用程序可以自动日落其权限请求。一个典型的例子是WRITE_EXTERNAL_STORAGE,从KLP开始,应用程序不再需要单独使用外部存储卷来满足自己的大数据需求,而不需要在多个应用程序之间共享实际的文件系统。

 类似资料:
  • 我想申请以下权限:。根据这个答案,我是这样申请权限的: 问题是我的应用程序只请求存储权限没有别的。 和是未请求或授予的权限。我如何按顺序询问所有权限? 以下是未授予和权限的证明:

  • 我再一次需要你的帮助堆叠天花! 我一直在开发SDK,现在需要验证用户是否授予了位置或文件写入等权限。 验证是可以的,但是我想如果需要的话,我应该请求许可。问题是,我绝对不能访问任何活动。我可以使用appContext来检查权限,但是我不能像这样监听onRequest estPermissionsResult。 有没有一种聪明的方法可以向我这边请求许可,或者我应该让使用我的SDK的开发人员及时请求许

  • 我一直在尝试实现运行时权限。下面是它的代码片段: RunTimePermissionsUtil。JAVA 在一个名为AddFileActivity的活动中,我在一个点击事件中实现了这个监听器,其代码如下: 所以,我所有的代码都会执行,它会进入onNeed权限()代码,其中,它会进入 但是,令人惊讶的是,在此之后,没有任何对话框要求获得摄像头的运行时权限,相反,对话框关闭并再次显示活动。 有没有人能

  • 我正在为Android开发一个发送短信的小应用程序。安装时。apk Android 4.4要求获得从设备发送短信的权限。但Android 7根本不要求任何权限。但是,您需要在“设置”中手动启用SMS发送权限,以使应用程序正常工作。 在所有Android系统的安装过程中,是否有任何方式显示权限?

  • HttpURLConnection使我的应用程序崩溃,因为即使我在清单文件中使用标记,也没有授予internet权限

  • 问题内容: 我正在使用以下文件在Ubuntu 12.04中安装几个Python软件包: 和这两个命令: (第一个下载软件包,第二个安装软件包)。 该过程经常因错误而停止: 我用以下方法手动修复: 然后再次运行第二个命令。 但这仅适用于 该 特定程序包。当我再次运行第二个命令时,该过程现在停止,并抱怨 另一个 必需的程序包,我需要再次重复该过程,即:手动安装新的必需的程序包(使用上面的命令),然后运