【问题标题】:Xamarin Android : Read and write files on USB stickXamarin Android:在 U 盘上读写文件
【发布时间】:2017-10-11 14:31:08
【问题描述】:

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

我读取了 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);
            }

【问题讨论】:

  • 您能出示您的代码吗?
  • 我的代码与我正在谈论的线程中的代码相似(除了我的代码是 C#),并且为了请求访问 USB 记忆棒的权限,我使用了我添加到我的问题中的一段代码。

标签: c# android xamarin usb


【解决方案1】:

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

我开发了一个免费代码来解决这个问题: https://github.com/madnik7/PortableStorage

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    相关资源
    最近更新 更多