Google Play会显示隐含的READ_EXTERNAL_STORAGE权限

时间:2012-10-19 14:51:24

标签: android permissions google-play

在Google I / O上宣布Android 4.1 JellyBean(API 16)时,它引入了以下权限:

  

READ_EXTERNAL_STORAGE

     

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

http://developer.android.com/about/versions/android-4.1.html#Permissions

我有一个tagets API 16的应用程序,需要WRITE_EXTERNAL_STORAGE权限。我准备部署更新,并注意到READ_EXTERNAL_STORAGE权限现在在开发人员门户中列为必需权限。对于上周部署的更新,它未在Google Play中列为必需的权限。此应用程序未明确请求READ_EXTERNAL_STORAGE权限。

在更新应用程序时,是否会提示已授予此应用程序WRITE_EXTERNAL_STORAGE权限的用户授予其他隐式READ_EXTERNAL_STORAGE权限?

更新

我们已经发布了应用程序,JellyBean设备会自动更新,而不会请求READ_EXTERNAL_STORAGE权限。在我明确声明READ_EXTERNAL_STORAGE要求的未来版本中,是否会要求已授予WRITE_EXTERNAL_STORAGE权限的用户授予READ_EXTERNAL_STORAGE权限?

2 个答案:

答案 0 :(得分:3)

自API 19(Android 4.4)起,您必须明确指定READ_EXTERNAL_STORAGE权限。是的,如果您拥有WRITE_EXTERNAL_STORAGE权限,则会隐式授予READ_EXTERNAL_STORAGE,但如果您需要对外部存储的只读访问权限,则必须指定READ_EXTERNAL_STORAGE

Prooflink:http://developer.android.com/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGE

答案 1 :(得分:2)

只要您拥有READ_EXTERNAL_STORAGE,就不必明确声明WRITE_EXTERNAL_STORAGE。以前,操作系统没有强制执行对外部存储的只读访问,即正在更改,您必须立即请求它。但是如果你有写访问权限,你就会隐式获得读访问权。

来自http://developer.android.com/training/basics/data-storage/files.html

  

如果您的应用需要读取外部存储(但不能写入),那么您需要声明READ_EXTERNAL_STORAGE权限   ...

     

但是,如果您的应用使用了WRITE_EXTERNAL_STORAGE权限,那么   它隐含地也有权读取外部存储器。