只是浏览我的应用的权限,我想知道在使用android.permission.READ_EXTERNAL_STORAGE
时我的清单中是否需要android:installLocation="auto"
。
我查看了developer docs没有提及权限的内容,但是other documentation表示我确实需要获得从外部存储中读取的权限:
要在外部存储上读取或写入文件,您的应用必须获得
READ_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
系统权限。
此外,documentation about the permission州:
允许应用程序从外部存储中读取。
任何声明
WRITE_EXTERNAL_STORAGE
权限的应用都会被隐式授予此权限。此权限从API级别19开始强制执行。在API级别19之前,不会强制执行此权限,并且所有应用程序仍有权从外部存储读取。您可以通过在运行Android 4.1或更高版本的设备上的“设置”应用中的“开发者”选项下启用“保护USB存储”来强制执行权限来测试您的应用。
同样从API级别19开始,读取/写入
getExternalFilesDir(String)
和getExternalCacheDir()
返回的特定于应用程序的目录中的文件不需要此权限。
因此我不确定我是否确实需要Manifest文件中installLocation
属性的权限,因为这意味着我的应用程序将从外部存储中读取,但正如我之前所说,文档特别是应用安装位置未提及权限。
我需要获得许可吗?
答案 0 :(得分:3)
您不需要许可。
在Android 6.0之前,android:installLocation
不会影响应用的内部存储空间(例如getFilesDir()
)。它只会影响APK的位置。因此,许可不适用。
Android 6.0现在允许用户将可移动存储(例如,微型SD卡)专用于安装应用程序的位置。在这种情况下,您的内部存储恰好位于可移动存储上的加密分区上。但是,这仍然不是外部存储,因此权限不适用。