首页 > 解决方案 > 如何从 Android 模拟器应用程序写入本地 PC 文件

问题描述

我已经搜索了几个小时,遇到了很多关于只读这个和那个以及文件夹和目录以及查看手机 fs 等的废话。

我想要做的就是写入我 PC 上的一个文件,用于 Android 项目。我尝试使用本地路径(Windows)并且遇到了只读 fs 系统问题,即使在将所需文件夹完全转换为读写之后,Android 也拒绝获取它。我在清单中使用 WRITE_EXTERNAL_STORAGE 和 WRITE_INTERNAL_STORAGE 设置了使用权限,但没有运气。

我试图通过模拟器和实际的物理电话写入手机,但我所做的每次搜索都没有结果(搜索文件名)。

如何写入日志文件,即我的开发源代码所在的任何文件?我需要从 Web 服务调用中消化 JSON 数据,并且需要将其写入本地文件,以便我可以使用它。这些调用是通过 Android 进行的,目前是一个模拟器,并安装在物理设备上,但没有写入日志,因为要么是一个无意义的只读问题,要么我只是找不到该死的文件。

任何帮助将不胜感激。

标签: javaandroidlogging

解决方案


我想最终我问的问题太混乱了。我想知道在我的 Android 设备上哪里可以找到“本地”日志,我可以在一些文本编辑器中打开并阅读自己的日志。在通过模拟器测试应用程序时,我还想知道“本地”日志/文件写入硬盘的位置。

在这一点上,我还没有发现任何与日志文件或任何能够从 Android 应用程序写入本地开发 PC 的任意文件相关的内容,而无需从adb.

我找到了可以将任意文件写入模拟器或手机文件系统的解决方案(来源:https ://www.journaldev.com/9383/android-internal-storage-example-tutorial ):

FileOutputStream fos = Main.getAppContext().openFileOutput( "myfile.txt", Context.MODE_PRIVATE );
fos.write( "Hello, world".getBytes() );
fos.close();

需要注意的一些事项(至少 Android SDK 26+,其他未经测试):

  1. FileOutputStream效果很好。
  2. “主要”是指您为应用程序使用的任何入口点类。它最有可能(或必须?) extends AppCompatActivity
  3. Context.MODE_PRIVATE似乎是必需的。
  4. READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, READ_INTERNAL_STORAGE, WRITE_INTERNAL_STORAGE似乎不需要AndroidManifest.xml 权限。
  5. 重要提示:文件将保存到/data/data/YOUR.APP.PACKAGE/files/.

这也很有帮助:https ://developer.android.com/training/data-storage


推荐阅读