我正在创建一个应用程序,它通过adb从设备SD卡中提取文件(由Android应用程序保存)。 问题是不同的设备,有各种SD卡目录
即:
首先,我发明了以下解决方案:
但问题是我有两个三星设备GT-I9100
和GT-I9000
,并且都有一个目录sdcard/external_sd
。当我检查System.getenv("EXTERNAL_STORAGE")
时,我会返回sdcard
和另一个sdcard/external_sd
。我需要将以前保存的文件拉到System.getenv("EXTERNAL_STORAGE")
。
所以问题是:是否有任何命令来获取SD卡目录 直接来自adb,无法访问Android代码?
或者也许我可以开始使用adb的活动,并获得回报 值?这可能吗?
编辑: 找到解决方案:
adb shell echo $EXTERNAL_STORAGE
答案 0 :(得分:27)
如果我没有误解你,你会找到类似的东西:
emanuele@Nabucodonosor:~$ adb shell cd \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb shell ls \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb shell echo \$EXTERNAL_STORAGE
答案 1 :(得分:19)
它的价值 - 使用$ 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
所以,外部SD卡实际上是/ mnt / external_sd,而不是值EXTERNAL_STORAGE返回(这是内部存储)
答案 2 :(得分:0)
最好使用getExternalStorageDirectory()代替System.getenv("EXTERNAL_STORAGE")
这将为您提供外部存储目录,无论设备如何。