Android系统第三方应用无法读写外置TF卡 | 您所在的位置:网站首页 › 手机sd卡没有写入权限怎么解决呢 › Android系统第三方应用无法读写外置TF卡 |
Android系统第三方应用无法读写外置TF卡 车载设备会挂载TF卡进行视频录像的存储,第三方app需要在TF卡目录下进行修改、创建、删除文件等操作,但是外置TF卡第三方应用没有读写权限。 需求实现AndroidManifest.xml添加权限 尝试在TF卡创建文件夹 try { File folder = new File("/storage/5611-15D4/newfolder"); if (!folder.exists()) { folder.mkdir(); } } catch (Exception e) { e.printStackTrace(); }报错 E/File: err java.io.IOException: Permission denied 解决方案在Android中有些权限只能有系统签名的app才能申请,第三方app不能申请。如果要开放某个权限给第三方,我们只能修改系统源码。android.permission.WRITE_MEDIA_STORAGE 是SD卡写权限,只有系统签名的app才可以申请,第三方app如果要写SD卡 只能用 SAF。 此处实现把 android.permission.WRITE_MEDIA_STORAGE 开放给第三方应用,验证Android7系统可以完成写入。 diff --git a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java index 59f7c11..825e76e 100755 --- a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java @@ -10151,7 +10151,7 @@ public class PackageManagerService extends IPackageManager.Stub { case PermissionInfo.PROTECTION_SIGNATURE: { // For all apps signature permissions are install time ones. allowedSig = grantSignaturePermission(perm, pkg, bp, origPermissions); - if (allowedSig) { + if (allowedSig || perm.equals("android.permission.WRITE_MEDIA_STORAGE")) {//或者if(true),或者if (allowedSig || pkg.packageName.equals(package_name)) grant = GRANT_INSTALL; } } break; |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |