第三方应用访问外置SD卡

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cpwolaichile/article/details/50508700

在Android kk版本之后(4.4, 5.0, 5.1,6.0);一般的应用程序(APP)是无法访问(读/写)外置SD卡的;仅仅只有系统级别的并且使用系统签名的APP可以访问外置SD卡

  1. AndroidManifest.xml中添加android.permission.WRITE_MEDIA_STORAGE
  2. Android.mk中添加LOCAL_CERTIFICATE := platform
  3. 不要在AndroidManifest.xml中添加share System UID

第三方APP只能访问外置SD卡的应用程序目录,例如:*Android/data/com.example.foo/
系统APP只有使用了系统签名(platform certification)并且在AndroidManifest.xml声明了权限;才可以访问外置SD卡。
详细信息请参考(需要访问 android.com)Android Storage

主要问题点:
WRITE_EXTERNAL_STORAGE权限是用来控制对主外置存储的写入的,APP是无法获得外置SD卡的写入权限的,除去SD卡中的APP目录(*Android/data/com.example.foo/),这样可以确保APP在卸载的时候可以删除对应目录

解决APP访问外置SD卡的方案:

  • 修改/frameworks/base/data/etc/platform.xml
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
    <group gid="sdcard_rw" />
    <group gid="media_rw" /> // Add this line ,the WRITE_MEDIA_STORAGE permission to the WRITE_EXTERNAL_STORAGE permission, so apps do not experience the described problem.
</permission>
  • AndroidManifest.xml中加入android.permission.WRITE_MEDIA_STORAGE

注意:
次修改可能导致CTS无法通过

展开阅读全文

没有更多推荐了,返回首页