2013-11-15 31 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