Я пишу несколько тестов для проекта android, часть из которых включает копирование файлов данных в папку данных нашего приложения.
Подход, который я выбрал ( из этого обсуждения ), заключается в том, чтобы сначала скопировать файл через adb pu sh в /sdcard
adb push path/to/hello.txt /sdcard/hello.txt
Затем, Я использую adb run-as
, чтобы убедиться, что директория файла приложения существует:
adb shell run-as our.app.id "mkdir -p files"
Я перемещаю файл из /sdcard
в files
:
adb shell run-as our.app.id "mv /sdcard/hello.txt files/hello.txt"
Это прекрасно работает на устройства, которые я тестировал до сих пор, но не работает на Samsung.
Я подтвердил, что если я сделаю следующее:
adb shell
run-as our.app.id
# this works as expected, shows the contents of
# the files/ folder in the app's private storage
ls files
# this fails, "Permission Denied"
ls /sdcard
# exit run-as
exit
# now I can peruse /sdcard
ls /sdcard
Итак, учитывая, что проблема мне нужна скопировать файлы в личное хранилище приложения для тестирования, есть ли другой способ решения этой проблемы?