我正在编写一个代码,使用 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 变量中。
示例代码段非常有用。感谢。