一年前,我开发了一款应用程序,可以在sdcard根文件夹中写入备份。这一切都很好,直到我现在抱怨说,新的droid3可以将所有文件保存到SD卡本身的文件夹/sdcard中。
现在看起来我的应用程序不能处理这个问题。它显示"write successful“,但用户在SD卡上的任何位置都找不到该文件,而且当应用程序尝试从SD卡的根目录读取备份时,它也找不到任何东西。
这似乎是一种文件系统行为,并不适用于典型的安卓文件系统,因此我被卡住了,因为我也没有要测试的droid3。有什么帮助或建议吗?
谢谢,克里斯
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()) {
File gpxfile = new File(root, DATABASE_TABLE + ".myd");
FileWriter gpxwriter = new FileWriter(gpxfile);
BufferedWriter out = new BufferedWriter(gpxwriter);
// later i write for example:
out.write("<data>\n");
下面是我是如何阅读的
File root = Environment.getExternalStorageDirectory();
if (root.canRead()) {
File gpxfile = new File(root, DATABASE_TABLE + ".myd");
FileReader gpxwriter = new FileReader(gpxfile);
BufferedReader in = new BufferedReader(gpxwriter);
while ((dummystr2 = in.readLine()) != null)
{
// read data line by line
}
发布于 2011-07-19 03:06:04
我仍然认为你应该把你的代码放在上面,让每个人都可以根据评论看一下。
但是如果你想在真实的设备上进行测试,这里有一个地方你可以使用Real Device Testing via DeviceAnywhere
我认为你可以免费使用他们的服务三个小时,你可能必须跳过圈套(听销售助理胡说八道,并试图为你注册),但这是一种在没有设备的情况下在实际设备上进行测试的方法(它是在3g/4g网络上运行的)
价格令人困惑,但绝对昂贵,免费试用应该可以让你做你需要做的事情,我认为如果你能让他们安装一个droid2。
由于他们没有展示droid3(但他们可能有一台,只是没有列出),我敢打赌,如果你和销售团队谈过,说,很有趣,但我看不出我对droid3感兴趣,他们可能会在几天内附加一台。
更新:,所以我在一个2.3.3的设备上做了一些测试,我认为他们的根访问可能有一些问题(我想我在某个地方读到了这是一个糟糕的形式),但它工作得很好。
所以我做了更多的搜索,似乎一些设备返回mnt/sdcard作为外部存储,即使这些设备使用mnt/sdcard-ext作为实际的外部SD
据我所知,这意味着它实际上写入内部存储,写工作(如果你可以这样叫它的话),而读不是。请参阅Stack Flow Similar Question/Answer
一些终端用户Droid 3 Users - See Page 2证实了这一点,他们说它创建了一个内部SD卡分区,尽管目前还不清楚这是典型的行为还是放入以前使用的SD卡的结果,观点似乎各不相同,但在内存大于8 8GB的设备上,他们确实是一个真正的问题。
https://stackoverflow.com/questions/6737821
复制相似问题