Android U盘 SD卡 读写权限

问题描述

​ 想要在sd卡或U盘的跟目录修改、创建、删除文件等操作。

​ 在XML文件中申请权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"
        tools:ignore="ProtectedPermissions" />

在使用如下代码进行文件创建

try {
    final File newFile = new File("/mnt/media_rw/87FA-0B05/","creat");
    if(newFile != null && !newFile.exists()) {
        newFile.createNewFile();
    }
}catch (Exception e){
    Log.e("File ",  "err " + e);
}

运行后就会爆出如下错误

E/File: err java.io.IOException: Permission denied

查找原因

​ 各种baidu得知,是因为Google的SAF存储框架的原因,不可直接访问sdcard。参考链接

解决办法

由于可以直接修改AndroidSDK的Frameworks,所以直接将该权限打开即可

源码目录frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java

将此处代码

                case PermissionInfo.PROTECTION_SIGNATURE: {
                    // For all apps signature permissions are install time ones.
                    allowedSig = grantSignaturePermission(perm, pkg, bp, origPermissions);
                    if (allowedSig) {
                        grant = GRANT_INSTALL;
                    }
                } break;

修改为

                case PermissionInfo.PROTECTION_SIGNATURE: {
                    // For all apps signature permissions are install time ones.
                    allowedSig = grantSignaturePermission(perm, pkg, bp, origPermissions);
                    if (allowedSig || perm.equals("android.permission.WRITE_MEDIA_STORAGE")) {
                        grant = GRANT_INSTALL;
                    }
                } break;

            case PermissionInfo.PROTECTION_SIGNATURE: {
                if (true) {
                    grant = GRANT_INSTALL;
                }
            } break;

即可;

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android U盘读写是指在Android系统设备上使用U盘进行数据传输和存储的过程。在Android系统中,U盘通常使用USB接口与设备连接,通过USB On-The-Go(简称USB OTG)技术可以使设备拥有读写U盘的能力。 要在Android设备上读写U盘,首先需要确保设备支持USB OTG功能,并且安装了相应的驱动程序。然后将U盘插入设备的USB接口,系统会自动识别U盘,并在文件管理器中显示其中的文件和文件夹列表。接着就可以像在电脑上操作一样进行文件的拷贝、移动、删除等操作了。 需要注意的是,不同设备对U盘读写的支持程度可能有所不同。有些设备可能只能读取U盘中的文件,而不能写入,或者只能写入部分格式的文件。此外,U盘的格式也会影响设备的读写能力。因此,在使用之前需要先了解设备和U盘的限制,以避免数据丢失或损坏。 总的来说,Android U盘读写功能的便利性和灵活性使其成为很多人进行数据传输和备份的首选方式。对于需要频繁进行数据交换的用户来说,它的作用是不可替代的。 ### 回答2: 对于android u盘读写,首先需要保证你的android设备支持OTG(On-The-Go)功能。 如果你的设备支持OTG,可以通过OTG线连接U盘android设备,然后直接在安卓设备上找到文件管理器,就能看到u盘的存储设备了。 接下来,你可以打开文件管理器,浏览U盘中的文件,并进行读写操作。如果需要复制文件到U盘,则直接在文件管理器中选择要复制的文件,然后将其粘贴到U盘的根目录或指定文件夹下即可。同样,如果需要从U盘中复制文件到android设备,则选择要复制的文件,将其粘贴到想要存储的android设备文件夹下即可。 需要注意的是,在android设备上对于U盘进行读写操作时,需要牢记安全移除U盘的步骤,否则会将数据损坏。 总的来说,使用OTG线连接U盘android设备,通过文件管理器进行读写操作是十分方便的,因此在出门旅行时,将重要文件存储在U盘中,即可随时实现安卓设备和电脑之间的数据互传。 ### 回答3: Android设备上的U盘读写操作并不像在电脑上那么简单,需要一些必要的前置条件。首先,您需要连接一根OTG(On-The-Go)线缆将U盘Android设备连接起来。OTG线缆的一端是一个Micro USB端口,另一端是一个USB2.0或3.0端口,您应该根据自己的设备来选择合适的线缆类型。 接下来,当您连接U盘后,您的Android设备或许会出现一个提示框,问您想如何处理连接的U盘,这将由您自己决定。然后,您需要查看U盘是否已经正确识别,可以在“文件管理器”应用程序中看到U盘是否出现在文件列表中。如果您不能看到它,请尝试断开连接并重新连接U盘,或者重启您的Android设备并再次连接U盘。 此时您可以打开U盘并开始读写操作了。要复制文件到U盘,请单击并长按要复制的文件,选择“复制”,然后进入U盘,再次单击并长按空白区域,选择“粘贴”完成文件复制。同样,您也可以使用相同的方法将U盘上的文件复制到Android设备上,只需要选择粘贴的目标是您的设备内存或SD卡即可。 但是,需要注意的是,在进行读写U盘操作时,请勿在拔出U盘之前来回插拔U盘,否则可能会导致文件损坏。在不需要使用时,应该先卸载U盘,然后再从Android设备上断开连接。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值