Je suis en train de créer une application qui extrait des fichiers (Saved by Android app) de la carte sdcard de l'appareil par adb. Le problème est que différents périphériques ont différents répertoires sdcard
c'est à dire:
Tout d'abord j'ai inventé la solution suivante:
Mais le problème est que j'ai deux appareils samsung GT-I9100
et GT-I9000
et que tous les deux ont un répertoire sdcard/external_sd
. Quand je vérifie System.getenv("EXTERNAL_STORAGE")
, on retourne sdcard
et un autre sdcard/external_sd
. Je dois extraire le fichier précédemment sauvegardé dans System.getenv("EXTERNAL_STORAGE")
.
La question est donc: y at-il une commande pour obtenir le répertoire sdcard directement depuis adb, sans accès au code Android?
Ou peut-être que je peux commencer l'activité avec adb's start et obtenir un retour valeur? Est-ce possible?
EDIT: Trouvé la solution:
adb Shell echo $EXTERNAL_STORAGE
Si je ne vous ai pas mal compris, vous cherchez quelque chose comme:
emanuele@Nabucodonosor:~$ adb Shell cd \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb Shell ls \$EXTERNAL_STORAGE
emanuele@Nabucodonosor:~$ adb Shell echo \$EXTERNAL_STORAGE
Pour ce que cela vaut - utiliser la variable $ EXTERNAL_STORAGE peut vous donner des résultats trompeurs . Cependant, lorsque vous utilisez la commande df (disk free) sur Shell, ou même la commande mount pour afficher de l’espace libre ou des montages, les éléments suivants deviennent évidents:
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
ainsi, la carte SD externe est en fait/mnt/external_sd, au lieu de la valeur renvoyée par EXTERNAL_STORAGE (qui est la mémoire interne)
Il est préférable d’utiliser getExternalStorageDirectory () au lieu de System.getenv("EXTERNAL_STORAGE")
. Cela vous donnera un répertoire de stockage externe quel que soit le périphérique.