通过OTG Xamarin Android将文件复制到USB时未经授权的访问

时间:2016-07-25 12:16:20

标签: usb-otg

我正在编写一个代码,使用 OTG 电缆将文件粘贴到连接到我的Android KitKat设备的USB Sandisk笔式驱动器上。

我正在使用以下代码段。

使用以下代码,我得到一个弹出窗口,询问权限并允许 mUsbManager.HasPermission(device);返回true,但是当我复制文件时,我得到了一个未经授权的访问异常。

我已设置 WRITE_EXTERNAL_STORAGE 权限。

  

//代码段

UsbManager manager = (UsbManager)_mainActivity.GetSystemService(Context.UsbService);
var deviceList = manager.DeviceList;
IEnumerable deviceIterator = deviceList.Values.AsEnumerable();

if (deviceIterator.Count() > 0)
{
var device = deviceIterator.ElementAt(0);

ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
var mPermissionIntent = PendingIntent.GetBroadcast(_mainActivity.ApplicationContext, 0, new Intent(ACTION_USB_PERMISSION), 0);

UsbManager mUsbManager = (UsbManager)_mainActivity.GetSystemService(Context.UsbService);
mUsbManager.RequestPermission(device, mPermissionIntent);

bool perm = mUsbManager.HasPermission(device);
if (perm)
{
    string FileNameSource = "/storage/emulated/0/FileNotPresent.txt";
    string FileNameDestination = "/storage/2A85-5687/FileNotPresent.txt"; 

    File.Copy(FileNameSource, FileNameDestination);
}
}

第二个问题我怎样才能获得连接USB的路径,到目前为止我已经硬编码到 FileNameDestination 变量中。

示例代码段非常有用。感谢。

0 个答案:

没有答案