USBまたはドライブの権限があると思われます。 Android 6を搭載したODROID C2では正常に動作しています。しかし、私のMoto G5(Android 7)とAsus Zen Tablet(Android 6)ではうまくいきません。
私は「Intent.ACTION_OPEN_DOCUMENT」ファイルピッカーでファイルを選択することができ、すべてのデバイス上のドキュメントのパスが同じである...しかし、ボリュームの一部が存在しない。
Asusの禅(アンドロイド6 )
巻:/storage/7C23-16EA/m_BlueforLabrusca.mp3
:/ストレージ/ファイルを選択/ 0
をエミュレート。 。 。
ODroid C2(アンドロイド6)
巻:選択したファイル/ストレージ/ 7C23-16EA
:/ストレージ/内部
巻:/ストレージ//0
ボリュームをエミュレート:/storage/7C23-16EA/m_BlueforLabrusca.mp3
StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
Class<?> StorageVolume = Class.forName("android.os.storage.StorageVolume");
Method getVolumeListMethod = StorageManager.class.getDeclaredMethod("getVolumeList");
Method methodGetPath = StorageVolume.getDeclaredMethod("getPath");
Object[] storageVolumeList = (Object[]) getVolumeListMethod.invoke(storageManager);
final int length = Array.getLength(storageVolumeList);
for (int i = 0; i < length; i++) {
Object storageVolumeElement = Array.get(storageVolumeList, i);
String path = (String) methodGetPath.invoke(storageVolumeElement);
path = new File(path).getAbsolutePath();
volumes.add(new File(path));
Log.i("!!!","Volume: " + path);
}
可能な重複(https://stackoverflow.com/questions/24075352/get-access- [アンドロイドにUSBマスストレージデバイスへのアクセスを取得] to-usb-mass-storage-device-inroid) –
ありがとう、私は数時間前にその記事を読んだが、動作していない。 USBスティックが「/ storage/UsbDriveA /」にありません – Kyle