2015-06-18 61 views
3

我想我可以在廣播接收器中使用Intent.ACTION_DEVICE_STORAGE_LOW來通知我設備存儲空間不足時。 說明hereAndroid檢查應用程序啓動時存儲空間是否很低

我知道我可以找出用戶有多少空間可用here

但是,如果可能的話,我想避免必須設置什麼/沒有足夠空間的邊界。操作系統在存儲空間不足時通知用戶。

問題:如果操作系統認爲可用空間很低,是否只在啓動時顯示應用程序錯誤消息?

+0

聽ACTION_DEVICE_STORAGE_LOW廣播嗎? 「這是受保護的意圖,只能由系統發送。」但它會並且應該被設備解僱。 – shkschneider

+0

我希望的解決方案是在啓動時進行檢查,而不是在應用程序生命週期中的任何時間進行檢查。廣播的問題是它可以在任何時候回來。我不希望這樣做的原因是因爲如果用戶正在做某件事情,我不希望這種干擾和破壞他們的用戶體驗。 –

+0

如果我不能做檢查,回落只是對自己的啓動進行檢查......但我不確定有多少可用空間被認爲是「太低」,所以我希望我可以讓操作系統來決定爲了我。 –

回答

8

每一些related sample code from google你可以採取這種路線:

IntentFilter lowstorageFilter = new IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW); 
boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null; 

換句話說,有可能運行在操作系統級別和檢測到低存儲情況DeviceStorageMonitorService服務。從那裏,它發送一個粘性的廣播,任何活動或服務可以稍後檢查。在這個例子中,他們註冊了一個空接收器作爲測試粘性廣播是否已經發送的一種方法。

+0

真棒謝謝你 –

相關問題