簡體   English   中英

Android M:如何以編程方式禁用打瞌睡模式

[英]Android M: How to programmatically disable doze mode

我有一個前台通知服務,它使用 ActivityRecognition 持續監控用戶的操作,並在用戶狀態發生變化時將它們寫入 AWS。 一段時間后效果很好。 但是我注意到當用戶空閑時間較長時,例如用戶整夜睡覺,然后應用程序(活動和服務)默默地死了。 我認為這是因為打盹模式(因為我在另一部手機上將同一個應用程序列入白名單,現在它可以正常工作超過 2 天)

如何在打盹模式下將應用列入白名單 Android 6.0很好地概述了如何通過用戶干預禁用打盹模式。 但下面的@commonsware 博客建議谷歌“可能”禁止顯示相應彈出框的應用程序https://commonsware.com/blog/2015/11/11/google-anti-trust-issues.html

 Note: Google Play policies prohibit apps from requesting direct exemption from Power Management features in Android 6.0+ (Doze and App Standby) unless the core function of the app is adversely affected.

有人可以幫助我了解哪些功能可能包含“核心功能”,因此 Google 不會禁止我的應用程序。 我們知道打盹模式不會影響某些應用程序,例如 WhatsApp

編輯

我在 6.0.1 的三星手機上看到了這個

Android 不會使用 Doze 在后台終止服務。 根據ActivityRecognitionApi 文檔

為了節省電池電量,當設備長時間處於“靜止”狀態時,活動報告可能會停止。 一旦設備再次移動,它將恢復。 這只發生在支持 Sensor.TYPE_SIGNIFICANT_MOTION 硬件的設備上。

因此,預計在很長一段時間內您都不會收到任何活動識別回調。 在這些情況下,您可以假設上次收到的活動 ( STILL ) 仍然適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM