2016-08-28 18 views
0

在我的應用中,用戶可以啓動一個跟蹤服務,該服務使用LocationManager每隔X秒請求位置。Android睡眠模式和位置​​管理器

的用戶報告說,他的設備(Galaxy Tab的S2),當設備進入其睡眠模式時,跟蹤幾分鐘後停止。

我有兩個問題:

  • 有沒有把我的設備處於休眠模式(用於測試)的方法嗎?
  • 使用部分喚醒鎖會產生什麼影響?在我的設備上,cpu似乎並沒有進入睡眠狀態,所以我猜想沒有任何影響,對吧?或者我需要使用AlarmManager,每隔x秒手動獲取位置(順便說一句,這應該是LocationManager的一個選項)。
+0

據我所知位置管理器獲得激活鎖定本身在請求時的位置更新,關於位置跟蹤停止可能與你的服務被Android系統殺死由於某種原因。 你處理服務停止正常,就像重新啓動您的服務或使用報警管理器來保持你的服務,如果它是由Android系統殺死 –

+0

那麼我的服務是粘性的,我已經看到它被殺害和自動重新啓動。你確定LocationManager使用喚醒鎖嗎?從我在網絡上發現的情況來看,事實並非如此。 –

回答

0

1)有沒有辦法讓我的設備進入睡眠模式(測試)?

是的,有通過使用PowerManager。閱讀here。 不要忘記包含以下權限。

android.permission.DEVICE_POWER 

有一個在this建議使用Device Administration希望解決你的問題,所以回答一個簡單的方法。

2)我建議你通過this github項目,看看如何有效地使用部分Wakelock和Alarmmanager來獲取位置。這是一個很好的起點,你應該能夠掌握很多關於如何繼續的好的提示。

+0

你能否詳細說明#1?你是否引用了這裏所述的goToSleep方法:http://stackoverflow.com/questions/9734353/how-to-put-android-to-standby-programmatically?我無法在文檔或Android Studio中找到此方法。感謝您提供此項目,如果我決定使用AlarmManager選項,這可能會有所幫助。 –

+0

@TimAutin我編輯了#1的答案,我希望這有助於讓我知道它是否有用。問候 –

+0

謝謝,我會在本週末檢查它,並讓你知道(我正在開展另一個項目)! –