Xamarin Android:在USB记忆棒上读写文件

时间:2017-10-11 14:31:09

标签: c# android xamarin usb

我有一个Xamarin Android应用程序(目标框架Android 7.1(Nougat)),具有权限READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE,我想在USB记忆棒上读写文件。

我读取proc / mounts系统文件以找到我的USB记忆棒的音量(如本线程中所述:How can I get the list of mounted external storage of android device)但是当我尝试将文件写入USB记忆棒时,我会得到一个“访问被拒绝“例外。

然后我的问题是,是否可以读取和写入连接的USB记忆棒,如果可以,我该怎么做?

以下是我用来请求访问USB记忆棒的权限的代码:

            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);
            }

1 个答案:

答案 0 :(得分:0)

最好的方法是使用Android Storage Access Framework(SAF):

我开发了一个免费的代码来克服此问题: https://github.com/madnik7/PortableStorage