android 9.0 外接U盘无写权限

1.网上主要有两种方案:

a: 修改framwork 中cpp code ,对外接USB添加 -w 权限

b.使用DocumentFile 进行适配

在我们项目中,我使用了第三种方案。写说明一下:这种方案我只在我们项目中做了验证,不知道其它系统是否也支持这种方式。

由于现在手上没有code了,所以只说明一下大概的实现方法:

使用绝对路径,进行外接U盘的写入不行,但是绝对路径映射出来的对应路径(或者说是内部路径)是可以操作的。

android 9.0 外接U盘无写权限_第1张图片

通过上述命令,可以找出外接设备对应的一个映射路径。我原来的项目里,这个内部路径是可以读写的。

使用这个路径,你可以做个快速的写操作验证,看是否可行。(不可行,就没必要看下面的步骤了

如果可行

1.可以通过反射,StorageManager.java类(好像是),获取外接U盘绝对路径与内部路径的对应关系

2.进行写操作时,通过路径替换,改为内部路径,写入外接U盘

你可能感兴趣的:(android)