我想获取USB设备文件夹的路径。我从以下代码获取pendrive的信息
private void showDevices() {
HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while(deviceIterator.hasNext()){
UsbDevice device = deviceIterator.next();
mUsbManager.requestPermission(device, mPermissionIntent);
//your code
Log.e("usb", "name: " + device.getDeviceName() + ", " +
"ID: " + device.getDeviceId());
mInfo.append(device.getDeviceName() + "\n");
mInfo.append(device.getDeviceId() + "\n");
mInfo.append(device.getDeviceProtocol() + "\n");
mInfo.append(device.getProductId() + "\n");
mInfo.append(device.getVendorId() + "\n");
path = device.getDeviceName();
}
}
但是当我想从USB存储器获取文件时,我收到此错误文件未找到异常打开失败的eacces
if(new CheckForSDCard()。isSDCardPresent()){
apkStorage = new File(device.getDeviceName()
+ "/"
+ Utils.downloadDirectory);
} else if (!apkStorage.exists()) {
apkStorage.mkdir();
}
outputFile = new File(apkStorage, "demo.mp4");
try {
byte[] b = new byte[(int) outputFile.length()];
FileInputStream fileInputStream = new FileInputStream(outputFile);
fileInputStream.read(b);
byte[] yourKey = Encryption.generateKey("password");
byte[] decodedData = Encryption.decodeFile(yourKey, b);
File outputDir = context.getCacheDir();
outputFile = File.createTempFile("videoFile", ".mp4", outputDir);
FileOutputStream fos = new FileOutputStream(outputFile);
fos.write(decodedData);
fos.flush();
} catch (Exception e) {
//Read exception if something went wrong
e.printStackTrace();
Writer writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));
String s = writer.toString();
Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
outputFile = null;
}`