2016-11-04 73 views
0

我正在開發針對API 18的應用程序。應用程序通過藍牙和GSM下載數據並將數據存儲在內部SD卡上(通常\模擬\ sdcard - 由Environment.getExternalStorageDirectory() )。Android棉花糖損壞存儲數據和塊寫入內部SD卡

直到此時一切正常 - 文件和文件夾被正確保存。 今天我遇到了非常奇怪的行爲:

1)啓動應用程序,它工作了一個多小時,並存儲數據文件。

2)之後,我關閉了應用程序,並希望將數據下載到計算機。 在插件USB之前,我使用Android文件瀏覽器軟件檢查存儲的數據。

我很震驚 - 新文件夾(任何新數據)都沒有了! 這就像系統刪除或隱藏在上次應用程序會話中創建的所有文件和數據。

備註:應用程序沒有刪除文件夾或文件的過程。它也適用於以前版本的Android(主要是4.X和5.X)。

這很奇怪,因爲當保存不可能時應用程序有警告機制,並且警告沒有顯示。所以我認爲,系統允許寫入,但此時數據不可見。

另一個陌生的事情是,應用程序無法在此時刻寫入內部存儲器中的任何文件(並且在這種情況下警告顯示應該如此)。

它看起來像Android Marshmallow在特定時刻「決定」 - 您的新數據將不再可用,並且您的應用程序不會寫入內部卡。 我已在系統中檢查應用權限 - 確定。

任何想法,爲什麼出現這種情況?如何處理它?

+0

棉花糖權限比以前的版本不同。您必須爲棉花糖設置運行時權限,或者手動設置應用程序權限。 –

+0

我知道,但現在無法遷移到Android Studio(項目在Eclipse中,使用舊版API的NDK)。在當前的IDE(Eclipse)中,我無權訪問運行時權限功能 - 無法引用API23,只能引用API18。 – skyraster

回答

0
+0

它是否適用於API18? ContexCompat不可用 - 無法使用代碼,目前無法遷移到API23。 – skyraster

+0

它不適用於api 18我認爲是因爲ContextCompat可用於api 23.如果您在棉花糖中運行應用程序,則應考慮遷移到api 23以支持Android環境中的最新更改。 –

+0

遷移是不可能的 - 太昂貴。 – skyraster