Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的外部USB存储_Android_Linux_Mount_Usb Drive - Fatal编程技术网

Android上的外部USB存储

Android上的外部USB存储,android,linux,mount,usb-drive,Android,Linux,Mount,Usb Drive,我正在DigiBoard(评估板)上为Android编写小型媒体播放器。我想用USB存储器播放音乐。我可以插入USB,我的主板可以挂载它(我看到一个通知),当我使用ADB外壳并转到/mnt/时,我有几个文件夹,其中一个是udisk和SD卡: # cd mnt cd mnt # ls ls obb shm asec extsd udisk sdcard secure 我列出了一个proc/mounts内容: # cat mounts cat mounts rootfs / rootfs rw 0

我正在DigiBoard(评估板)上为Android编写小型媒体播放器。我想用USB存储器播放音乐。我可以插入USB,我的主板可以挂载它(我看到一个通知),当我使用ADB外壳并转到/mnt/时,我有几个文件夹,其中一个是udisk和SD卡:

# cd mnt
cd mnt
# ls
ls
obb
shm
asec
extsd
udisk
sdcard
secure
我列出了一个proc/mounts内容:

# cat mounts
cat mounts
rootfs / rootfs rw 0 0
ubi0_0 / ubifs rw,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/shm tmpfs rw,relatime,size=1024k,mode=775,uid=1000,gid=1003 0 0
/dev/block/vold/179:1 /mnt/sdcard vfat ro,dirsync,nosuid,nodev,noexec,relatime,u
id=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset
=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat ro,dirsync,nosuid,nodev,noexec,relat
ime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,ioch
arset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/vold/8:1 /mnt/udisk vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=
1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=is
o8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
#
if (entry.contains("vfat") && !entry.contains("secure")) {
    String absolutePath = entry.split(" ")[1];
}
这里有一些路径,其中两个是“有效”mnt/sdcard和mnt/udisk。我已经了解到带有vfat的条目是有效的装载,但是/mnt/secure/asec具有vfat属性。我有一个名为ES File Explorer的应用程序,可以看到“udisk”文件夹中的文件:
因此,可以过滤安装的源。你能告诉我怎么过滤这个吗?默认情况下,/mnt中有一些文件夹,我可以在app中列出它们/硬编码,这样我就可以检查它们的名称了?

好的,我自己做的。 您需要读取
/proc/mounts
文件并过滤其内容:

# cat mounts
cat mounts
rootfs / rootfs rw 0 0
ubi0_0 / ubifs rw,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/shm tmpfs rw,relatime,size=1024k,mode=775,uid=1000,gid=1003 0 0
/dev/block/vold/179:1 /mnt/sdcard vfat ro,dirsync,nosuid,nodev,noexec,relatime,u
id=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset
=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat ro,dirsync,nosuid,nodev,noexec,relat
ime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,ioch
arset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/vold/8:1 /mnt/udisk vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=
1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=is
o8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
#
if (entry.contains("vfat") && !entry.contains("secure")) {
    String absolutePath = entry.split(" ")[1];
}
条目是该文件的单行表单。在absolutePath中,您可以直接访问安装的设备,如/mnt/sdcard或/mnt/udisk