关于android:installLocation权限的困惑

关于android:installLocation权限的困惑

只是浏览我的应用的权限,我想知道在使用android.permission.READ_EXTERNAL_STORAGE时我的清单中是否需要android:installLocation="auto"

我查看了developer docs没有提及权限的内容,但是other documentation表示我确实需要获得从外部存储中读取的权限:

  

要在外部存储上读取或写入文件,您的应用必须获得READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE系统权限。

此外,documentation about the permission州:

  

允许应用程序从外部存储中读取。

     

任何声明WRITE_EXTERNAL_STORAGE权限的应用都会被隐式授予此权限。

     

此权限从API级别19开始强制执行。在API级别19之前,不会强制执行此权限,并且所有应用程序仍有权从外部存储读取。您可以通过在运行Android 4.1或更高版本的设备上的“设置”应用中的“开发者”选项下启用“保护USB存储”来强制执行权限来测试您的应用。

     

同样从API级别19开始,读取/写入getExternalFilesDir(String)getExternalCacheDir()返回的特定于应用程序的目录中的文件不需要此权限。

因此我不确定我是否确实需要Manifest文件中installLocation属性的权限,因为这意味着我的应用程序将从外部存储中读取,但正如我之前所说,文档特别是应用安装位置未提及权限。

我需要获得许可吗?

最佳答案:

1 个答案:

答案 0 :(得分:3)

您不需要许可。

在Android 6.0之前,android:installLocation不会影响应用的内部存储空间(例如getFilesDir())。它只会影响APK的位置。因此,许可不适用。

Android 6.0现在允许用户将可移动存储(例如,微型SD卡)专用于安装应用程序的位置。在这种情况下,您的内部存储恰好位于可移动存储上的加密分区上。但是,这仍然不是外部存储,因此权限不适用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值