我正在编写一个使用wi-fi的Android应用程序,所以我无法轻松调试到模拟器(没有wi-fi支持... ;-),所以我选择了我的真实设备(三星Galaxy S) )。 我希望能够读取我的应用程序写入的数据文件,以进行调试和测试。 如果我使用,请说:
new File(getFilesDir(), "myfile.xml");
我将我的数据文件写入/ data / data / MYPACKAGE / files /,但该目录不能通过adb访问(也不能通过Eclipse的DDMS访问)。 我的设备不 rooted(如果可能的话,我宁愿避免生根... ;-) 我应该在哪里写我的数据文件?
答案 0 :(得分:2)
在开发期间将文件放在SD卡上可能是有意义的,正式地,您应该调用getExternalStorageDirectory()来查找它,当然还需要外部存储权限。
或者,您可以在调试版本中公开访问您的私人文件;只是不要忘记在发货之前关闭它(据报道,某个互联网电话公司)。但是,这不会使私有文件可浏览,因为插入的目录不是,您只能通过其确切的路径名称来拉取它们。
第三种选择是将数据保留为内部和私有,但具有调试功能,可将其复制到SD卡进行分析。您甚至可以在单独的.apk中使用第一个建立共享用户ID,这意味着您的应用程序根本不会发生任何更改。
答案 1 :(得分:0)
只需使用external storage!
答案 2 :(得分:0)
您可以写信给SD卡。您应该使用getExternalStorageDirectory()来获取SD卡的路径。您必须在您的清单中包含<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
才能执行此操作。
答案 3 :(得分:0)
答案因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权限。