2014-03-25 29 views
5

我正在寫的應用程序需要知道'啓動會話'是否因爲缺少更好的術語而發生了變化,但它並不需要在啓動時真正開始,我寧願如果可能也不必使用RECEIVE_BOOT_COMPLETED權限。在Android設備上是否有唯一的啓動會話ID或計數?

所以我想知道是否有任何設備範圍的啓動會話ID或計數我可以查詢和存儲在我的數據庫以檢查以後。我知道我可以在開機後幾毫秒內獲得時間,但我認爲這種情況不會有用。

在此先感謝您的幫助。

+0

如何使用['randomUUID()'](http://developer.android.com/reference/java/util/UUID.html#randomUUID())?獲得兩個相同UUID的機會應該是微觀的。 – Michael

+0

由於根文件系統通常是一個虛擬磁盤,它的創建日期往往是一個啓動時間戳。 –

+0

那麼你有沒有找到啓動會話ID或計數? –

回答

0

爲什麼不把最後一次啓動的(絕對)日期和時間存儲在數據庫中?您可以使用自啓動以來的時間輕鬆計算它,並且如果引導需要比毫秒更長的時間,則應該相當準確。

+0

請注意,系統報告的最後一次啓動引導時間可能會跳到我測試此解決方案的許多Android設備上,從而導致引導計數不正確。 – southerton

1

是的,API> = 24.您可以使用BOOT_COUNT global settings variable。要閱讀此,嘗試一個片段是這樣的:

int boot_count = Settings.Global.getInt(getContext().getContentResolver(), 
             Settings.Global.BOOT_COUNT); 

預API 24,你堅持追趕RECEIVE_BOOT_COMPLETED