2013-11-15 22 views
0

我正在开发一个应用程序,通过读取存储在外部存储中的xml文件加载应用程序的设置。但是,无论何时重新启动系统,我都无法第一次访问xml,因此我的应用程序崩溃并重新启动。从那里它可以访问XML文件。任何关于发生什么的线索,或者我做错了什么?无法在Android上重新启动时访问文件

我的示例代码来打开文件:

filepath= Environment.getExternalStorageDirectory().getAbsolutePath(); 
File file = new File(filepath+"/xy.xml"); 

回答

1

请检查外部存储是否可用。使用广播接收器,监听Intent.ACTION_MEDIA_MOUNTED:广播动作:外部媒体存在并安装在其挂载点。

+0

hi iago,我试了你的建议,但意图不在正确的时间触发, 我想澄清的是,我的设备中的外部存储不是外部的pednrive或sdcard插入的部分设备上的存储器被制造商分隔为外部存储器。当我使用 “filepath = Environment.getExternalStorageDirectory()。getAbsolutePath();” 我得到的文件路径。我希望你对使用广播接收机的建议也应该在这种情况下工作。你能否解释我是否还有其他可能性。 – sash

+1

如果是这种情况,那么系统可能检测到多个外部存储器。检查API为您返回的路径。当作为SD卡处理时,内部存储返回类似于/ mnt/sdcard /的内容,因此在设备启动分区时不会装入分区,因此您可能会收到空指针异常。在最糟糕的情况下,您仍然可以使用轮询方法继续检查文件,直到您没有发生异常。 – iago

+0

工作iago,谢谢! – sash