Paw*_*weł 25 android sd-card adb
我正在制作一个应用程序,它通过adb从设备SD卡中提取文件(由Android应用程序保存).问题是不同的设备,有各种SD卡目录
即:
首先我发明了以下解决方案:
但问题是我有两个三星设备GT-I9100,GT-I9000并且都有一个目录sdcard/external_sd.当我检查System.getenv("EXTERNAL_STORAGE")一个返回sdcard和另一个sdcard/external_sd.我需要拉出之前保存的文件System.getenv("EXTERNAL_STORAGE").
所以问题是:是否有任何命令直接从adb获取sdcard目录,而无法访问Android代码?
或者也许我可以开始使用adb的活动,并获得返回值?这可能吗?
编辑:找到解决方案:
adb shell echo $EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
Bla*_*elt 27
如果我没有误解你,你会找到类似的东西:
emanuele@Nabucodonosor:~$ adb shell cd \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb shell ls \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb shell echo \$EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
小智 24
它的价值 - 使用$ EXTERNAL_STORAGE变量可以给你带来误导性的结果.我这里有一个HP Slate平板电脑,它的EXTERNAL_STORAGE变量设置为/ storage/sdcard0.但是,在shell上使用df(disk free)命令,甚至mount命令显示可用空间或挂载时,以下内容变得很明显:
shell@android:/ $ df
Filesystem Size Used Free Blksize
/dev 452.7M 36.0K 452.7M 4096
/mnt/asec 452.7M 0.0 K 452.7M 4096
/mnt/obb 452.7M 0.0 K 452.7M 4096
/system 629.9M 468.5M 161.5M 4096
/data 5.7 G 2.3 G 3.5 G 4096
/cache 435.9M 16.4M 419.5M 4096
/storage/sdcard0 5.7 G 2.3 G 3.5 G 4096
/mnt/external_sd 29.3G 64.0K 29.3G 32768
Run Code Online (Sandbox Code Playgroud)
所以,外部SD卡实际上是/ mnt/external_sd,而不是值EXTERNAL_STORAGE返回(这是内部存储)