我有一个Xamarin Android应用程序(目标框架Android7.1 (Nougat)),拥有READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,我想要读写U盘上的文件。
我读取proc/mount系统文件来查找U盘的卷(在这个线程中解释:How can I get the list of mounted external storage of android device),但是当我试图向U盘写入一个文件时,我得到了一个“拒绝访问”异常。
然后我的问题是,是否可以读取和写入文件到一个连接的U盘,如果可以,我如何做到这一点?
下面是我用来请求访问U盘权限的代码:
UsbManager usbManager = (UsbManager)Global.MyActivity.GetSystemService(Context.UsbService);
var deviceList = usbManager.DeviceList;
IEnumerable<UsbDevice> deviceIterator = deviceList.Values.AsEnumerable();
if (deviceIterator.Count() > 0)
{
var device = deviceIterator.ElementAt(0);
string ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
var mPermissionIntent = PendingIntent.GetBroadcast(Global.MyActivity.ApplicationContext, 0, new Intent(ACTION_USB_PERMISSION), 0);
usbManager.RequestPermission(device, mPermissionIntent);
}发布于 2019-04-06 08:45:33
最好的方法是使用Android Storage Access Framework (SAF):
我已经开发了一个免费代码来解决这个问题:https://github.com/madnik7/PortableStorage
https://stackoverflow.com/questions/46690925
复制相似问题