我正在为一个android项目编写一些测试,其中包括将数据文件复制到我们应用程序的data文件夹中。
我采用的方法(from this discussion)是先通过adb推送将文件复制到/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"
这在到目前为止我测试过的设备上都可以正常运行,但是在三星上却无法使用。
我已确认是否执行以下操作:
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
因此,鉴于问题是我需要出于测试目的将文件复制到应用程序的私有存储中,还有其他方法可以解决此问题吗?