我正在尝试从 Raspberry Pi 上的 Android Things 应用的USB驱动器中读取文件。我可以像这样扫描已安装设备的列表: __
public static List<File> ScanForFiles(Context context){ ArrayList<File> files = new ArrayList<>(); try{ BufferedReader reader = new BufferedReader(new FileReader("/proc/self/mountinfo")); String line; while ((line = reader.readLine()) != null) { String[] columns = line.split(" "); Log.i(TAG, "Mounted: " + columns[4]); //files.addAll(getListFiles(new File(columns[4]))); } } catch (Exception ex){ ex.printStackTrace(); } printFileInformation("/proc/partitions"); return files; } private static void printFileInformation(String fileName){ Log.i("TitanTV", "Reading contents of " + fileName); try{ BufferedReader reader = new BufferedReader(new FileReader(fileName)); String line; while ((line = reader.readLine()) != null){ Log.i("TitanTV", line); } } catch (Exception ex){ ex.printStackTrace(); } }
显示以下输出:
I: Mounted: / I: Mounted: /dev I: Mounted: /dev I: Mounted: /dev/pts I: Mounted: /dev/memcg I: Mounted: /dev/cpuctl I: Mounted: /proc I: Mounted: /sys I: Mounted: /sys/fs/selinux I: Mounted: /sys/fs/pstore I: Mounted: /acct I: Mounted: /mnt I: Mounted: /mnt/runtime/default/emulated I: Mounted: /mnt/runtime/read/emulated I: Mounted: /mnt/runtime/write/emulated I: Mounted: /config I: Mounted: /data I: Mounted: /oem I: Mounted: /gapps I: Mounted: /storage I: Mounted: /storage/emulated I: Mounted: /storage/self I: Reading contents of /proc/partitions I: major minor #blocks name I: 1 0 8192 ram0 I: 1 1 8192 ram1 I: 1 2 8192 ram2 I: 1 3 8192 ram3 I: 1 4 8192 ram4 I: 1 5 8192 ram5 I: 1 6 8192 ram6 I: 1 7 8192 ram7 I: 1 8 8192 ram8 I: 1 9 8192 ram9 I: 1 10 8192 ram10 I: 1 11 8192 ram11 I: 1 12 8192 ram12 I: 1 13 8192 ram13 I: 1 14 8192 ram14 I: 1 15 8192 ram15 I: 179 0 7761920 mmcblk0 I: 179 1 65536 mmcblk0p1 I: 179 2 1024 mmcblk0p2 I: 179 3 1024 mmcblk0p3 I: 179 4 32768 mmcblk0p4 I: 179 5 32768 mmcblk0p5 I: 179 6 524288 mmcblk0p6 I: 179 7 524288 mmcblk0p7 I: 179 8 64 mmcblk0p8 I: 179 9 64 mmcblk0p9 I: 179 10 1024 mmcblk0p10 I: 179 11 32768 mmcblk0p11 I: 179 12 32768 mmcblk0p12 I: 179 13 262144 mmcblk0p13 I: 179 14 262144 mmcblk0p14 I: 179 15 2683736 mmcblk0p15 I: 8 0 7847935 sda I: 8 1 7845888 sda1
但是,我的拇指驱动器不在列表中。所以我想我需要以某种方式安装它。如何安装拇指驱动器并访问其中的文件?
仅亚行解决方案
到目前为止,USB驱动器似乎尚未自动安装。为了使您的代码正常工作,我必须手动安装它。
如您所见(从/proc/partitions)在/proc分区中,USB驱动器被检测为sda。
/proc/partitions
/proc
sda
ADB安装
制作要挂载的目录
mkdir /mnt/usb
安装设备
mount -t vfat -o rw /dev/block/sda1 /mnt/usb
现在,您应该能够通过ADB和应用程序列出(和管理)USB驱动器上的文件(/mnt/usb也将被记录)。
/mnt/usb