Android系统第三方应用无法读写外置TF卡 您所在的位置:网站首页 手机sd卡没有写入权限怎么解决呢 Android系统第三方应用无法读写外置TF卡

Android系统第三方应用无法读写外置TF卡

2024-07-18 06:57| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有