首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我必须同时声明WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE吗?

我必须同时声明WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE吗?
EN

Stack Overflow用户
提问于 2012-08-14 05:12:56
回答 2查看 30.3K关注 0票数 37

声明<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />就足够了吗?或者我还需要声明<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />吗?Javadoc忽略了这一重要信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 05:17:58

READ_EXTERNAL_STORAGE仅在Jelly Bean (16级)中存在。根据the docs的说法,从Jelly Bean开始的所有应用程序都有这个权限,即使没有声明它:

提供对外部存储的受保护的读取访问权限。在Android4.1中,默认情况下所有应用程序仍然拥有读访问权限。这将在将来的版本中进行更改,以要求应用程序显式请求使用此权限的读访问权限。如果您的应用程序已经请求了写访问权限,那么它也将自动获得读访问权限。有了一个新的开发者选项来开启读访问限制,开发者可以根据Android未来的行为来测试他们的应用程序。

所以,你应该声明它是为了将来的兼容性,但这可能不是问题的根源,除非你使用的是Jelly Bean手机,并设置了开发人员选项“保护USB存储”选项。

票数 17
EN

Stack Overflow用户

发布于 2013-03-07 19:58:47

最好是显式地声明这两个权限,但是只声明APK会在构建时自动将android.permission.READ_EXTERNAL_STORAGE添加到android.permission.WRITE_EXTERNAL_STORAGE中。

你可以在APK上使用命令aapt dump badging来查看安卓是否考虑使用写权限,这意味着你也想要读权限。

下面是我的一个APK的一些来自aapt的输出,其中我在清单中只声明了WRITE_EXTERNAL_STORAGE

代码语言:javascript
复制
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE',
  'requested WRITE_EXTERNAL_STORAGE'
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11942400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档