如何在内部存储器上创建一个可以通过计算机读取的文件



我正在尝试创建一个android应用程序,该应用程序可以写入一个文本文件,稍后按下按钮即可访问该文件。

在过去的一周里,我尝试了人们建议的一系列写入内部存储的方法,有时它似乎可以工作(使用outputwriter和File类?),但我永远无法在我测试运行它的Android设备上找到文件。

我对安卓系统的开发还很陌生,所以这一切让我很困惑

感谢

如果你所说的"内部存储"是指Android SDK所说的内部存储,这是不可能的。你在那里创建的文件只能由你的应用程序访问,而不能由设备上或设备外的文件管理器访问。

如果你所说的"内部存储"是指Android SDK所说的外部存储,你需要:

  • 获取指向外部存储上的目录的File,例如在某些Context上调用getExternalFilesDir(),例如您的Activity
  • 如果该目录不存在,请创建该目录
  • 在该目录之外创建一个指向要创建的文件的File对象
  • 使用标准Java文件I/O写入由该File标识的位置
  • 使用MediaScannerConnection及其scanFile()方法告诉Android"嘿,我刚刚把一个文件放在外部存储器上,请对它进行索引,以便它显示在文件管理器中"

还有:

  • 理想情况下,您在后台线程上进行磁盘I/O,这样在工作进行时就不会冻结UI
  • 根据您的minSdkVersion和您选择写入文件的位置,您可能需要WRITE_EXTERNAL_STORAGE权限
  • 根据您的targetSdkVersion,您可能需要在运行时请求WRITE_EXTERNAL_STORAGE

您有时可以访问内部存储,但这取决于您的手机。

  1. 你总是可以从内部内存中获取根手机的数据(需要根)。文件在文件夹/Android/data/中
  2. 一些供应商允许您通过adb在无根手机上运行root shell(我在Explay选项卡上看到了这种行为)只需运行adb shell su测验然后您可以将文件从内部存储复制到公共存储使用shell命令
  3. adb pull在这种情况下也可能起作用。(再次取决于供应商)

相关内容

最新更新