Как скопировать файл с помощью adb в каталог android, доступный с ПК
Если вы прикрепляете Android-устройство к ПК, вы можете просматривать файлы и каталоги. Этот каталог можно получить с помощью Environment.getExternalStorage()
. Вы можете использовать его из своего приложения и создавать доступные файлы и директории. Он работает нормально.
На моих устройствах этот путь выглядит как /storage/emulated/0
, и если я попробую adb push
в этом каталоге, я получу отказ в доступе. Можно ли копировать файлы с помощью adb
в ту же папку, что и проводник Windows?
D:\...\tools>adb push ACCOUNTS.DB /storage/emulated/0
failed to copy 'ACCOUNTS.DB' to '/storage/emulated/0': Permission denied
58969 KB/s (606505 bytes in 0.010s)
Я реализую автоматизированный импорт/экспорт, и я хочу, чтобы файлы были доступны без adb shell
, если что-то пойдет не так.
В настоящее время, используя переменную $EXTERNAL_STORAGE
как обходной путь, она работает как для adb
, так и для приложения.
Устройство: Asus Fonepad 7, Android 5.0, попробовал Genymotion Custom Tablet 6.0 - работает.
Ответы
Ответ 1
Попробуйте использовать /sdcard/
. Хотя это настоятельно не рекомендуется делать в коде. Кажется, это единственный способ с adb:
$ adb push somefile /storage/emulated/0/somefile
[100%] /storage/emulated/0/somefile
adb: error: failed to copy 'somefile' to '/storage/emulated/0/somefile': Read-only file system
$ adb push somefile /sdcard/somefile
[100%] /sdcard/somefile
Кстати, на моем устройстве они не имеют одинакового значения: Environment.getExternalStorage()
указывает на /storage/emulated/0/
, а /sdcard
указывает на /storage/emulated/legacy
.
Ответ 2
Это довольно просто, внутреннее хранилище недоступно для ненагруженных устройств. Так, как было сказано в bwt answer, вам просто нужно нажать свои данные на SDCard:
adb push somefile /sdcard/somefile
При извлечении файлов из вашей файловой системы у вас также будет несколько проблем. Но в случае вытащить базу данных из приложения-отладки - вам просто нужно изменить разрешение файла с помощью chmod
.
Здесь у вас есть полезная ссылка - Ребята XDA об adb