Android,我应该将数据写入哪个设备的目录,以便能够读回它?



我正在编写一个使用Wi-Fi的Android应用程序,所以我不能轻易地调试到模拟器(没有Wi-Fi支持......;-),所以我使用我的真实设备(三星Galaxy S)。我希望能够读取我的应用程序写入的数据文件,以进行调试和测试。如果我使用,请说:

 new File(getFilesDir(), "myfile.xml");

我把我的数据文件写入/data/data/MYPACKAGE/files/,但该目录无法通过 adb 访问(也无法通过 Eclipse 的 DDMS)。我的设备没有植根(如果可能的话,我宁愿避免生根它...... ;-)我应该将数据文件写入哪里?

在开发过程中将文件放在SD卡上可能是有意义的,正式您应该调用getExternalStorageDirectory()来查找它,当然需要外部存储权限。

或者,您可以在调试版本中允许公共访问您的私人文件;只是不要忘记在发货前将其关闭(据报道,某家互联网电话公司就是这样做的)。 但是,这不会使私有文件可浏览,因为干预目录不是,您只能通过它们的确切路径名来 adb 拉取它们。

第三种选择是将数据保留在内部和私有,但有一个调试功能将其复制到SD卡进行分析。 您甚至可以在单独的.apk中执行此操作,与第一个建立共享用户 ID,这意味着您的应用程序完全没有变化。

只需使用外部存储!

您可以写入SD卡。 您应该使用 getExternalStorageDirectory() 来获取 SDcard 的路径。 您必须在清单中包含<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />才能执行此操作。

答案因 API 级别而异。查看文档中有关外部存储的部分以获取答案。http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

对于一个有点通用的答案,您应该存储文件的 sdcard 目录是从 getExternalStorageDirectory() 返回的目录(它应该是您的 sdcard 的根目录,或者可能是内部扩展存储,就像我的 Captivate 一样),子目录为/Android/data/your.package.name/files

哦,是的,正如另一张海报所提到的,不要忘记清单中的WRITE_EXTERNAL_STORAGE权限。

相关内容

  • 没有找到相关文章

最新更新