[英]How do I get the files I stored with my app (Android) on my PC?
我在为Google Nexus 5
编写的应用程序的内部(私有)存储上创建了json文件。
有人告诉我,这是所谓的私人应用程序空间,我无法从我的PC访问,除非我要么根电话(不是选项)或通过adb进行备份来解决问题。
我试图通过adb shell
访问。 但每当我尝试访问`数据? 目录我被告知我没有权限访问该目录。
如何访问此目录和文件?
注意:我还被告知我应该尝试使用
Environment.getExternalStorageState()
而不是写入私有应用程序空间。 但是当我尝试写入/storage/emulated/0/
它也无法正常工作。
我不关心使用哪种方法,我只需要访问我在PC上创建的文件。
您可以使用Android设备监视器访问私有应用程序空间,在root设备和模拟器中(包括Genymotion和AVD在内的所有模拟器都默认为root)
要在外部存储上写入文件,请不要忘记在AndroidManifest.xml中声明权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
由于此权限在Android 6.0中被归类为危险,因此您应明确请求访问它。 更多关于许可。
如果您不能或不想使用手机,则可以在外部存储上写入文件并在PC上访问它们。
如果要在SDCard上写入文件,则需要获得在SDCard上写入数据的权限。
这是获得许可的一种方式:
AndroidManifest.xml中
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
如果要支持Marshmallow(API-23),则需要获取此权限运行时。
对于该参考链接: https : //developer.android.com/training/permissions/requesting.html
首先使用此命令获取
runtime
权限。
adb shell pm grant com.package.app android.permission.<PERMISSION>
例
adb shell pm grant com.package.app android.permission.CALL_PHONE
那么你就可以访问存储了。
这样做了:
adb shell
run-as PACKAGE.NAME
chmod 771 files
cp files/*.json /sdcard/<SOME_DIR>
adb pull /sdcard/<SOME_DIR> <SOME_LOCAL_DIR>
其他可能对我有用的解决方案:
adb backup -noapk PACKAGE.NAME
dd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
tar -zxvf backup.tar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.