Подтвердить что ты не робот

Как скопировать файл с помощью 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 - работает.

4b9b3361

Ответ 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