繁体   English   中英

如何在我的PC上获取我的应用程序(Android)存储的文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM