2016-08-22 68 views
17

某些三星設備具有超節能模式,可以關閉wifi,將屏幕灰度化並將使用限制在一些基本應用程序中。如何使我的Android應用程序以超節能模式出現

但它確實允許您添加一些可以使用的應用程序。這些應用程序包括Facebook和WhatsApp。如何讓我的應用出現在此列表中?我必須對應用做出什麼改變才能出現在這個列表中?或者,這個清單是基於三星保存的白名單嗎?

+0

這可能會幫助你http://forum.xda-developers.com/showthread.php?t=2750393 – teivaz

+5

有趣的是,Facebook是在超節能模式列表:) –

+1

如果你的應用程序做了很多後臺工作,三星內置的電池應用程序將自動進入。所以,如果你的應用收集服務中的位置,或者使用JobSchedulars設置將來的工作,那麼你會出現在清單上的機率會變得更好。雖然,我不確定你爲什麼想要去那裏。 – Dus

回答

4

使用權限REQUEST_IGNORE_BATTERY_OPTIMIZATIONS可能是可能的。此權限不需要明確的用戶權限。所以會被授予。雖然這不會阻止用戶手動停止應用程序。

the docs

這是一個正常的權限:一個應用程序請求它總是會 授予權限,而無需用戶批准或看到它。

ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS將把應用程序放到設備的白名單中。

isIgnoringBatteryOptimizations會讓您知道該應用是否已列入白名單。

the docs一些注意事項:

注:大多數應用程序不應該使用這個;該平臺提供了許多設施 ,用於應用程序在各種省電模式下正確運行。這僅適用於需要深度控制其自身執行的非常規應用,用戶電池壽命的潛在費用爲 。請注意,這些應用程序極有可能會向用戶顯示在其設備上顯示爲高功率消費者的風險。

輸入:Intent的數據URI必須指定應用程序包名稱 以「package」方案顯示。這是「package:com.my.app」。

這不是我推薦濫用的東西。

有一個列表Acceptable Use Cases for Whitelisting

一般情況下,你的應用程序不應該是在白名單,除非打盹或應用 待機打破了應用程序的核心功能或有技術性 原因,您的應用程序無法使用FCM高優先級的消息。

感謝adsamcik這個最新的鏈接。

+0

禁用設備上的電池優化需要用戶採取措施。如果您使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS或自行禁用它們,它們必須確認一個對話框。此外,除非應用程序的核心功能受到不利影響,否則「Google Play政策禁止應用程序請求直接免除Android 6.0+(打盹和應用程序待機)中的電源管理功能。」 https://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases – adsamcik

+0

@adsamcik您在那裏提供的良好鏈接。我已經添加了報價,說這是默默的,是的有限制。感謝您的反饋 - 它需要改進 –

+0

我最近不得不自己實現它,所以我知道它是如何工作的。您被授予權限,但該權限僅允許您發送「ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS」意圖。這個意圖會向用戶顯示一個對話框,詢問他們是否要禁用電池優化。我找到了這個對話框的例子(文本不同,版本不同)https://commonsware.com/blog/images/ignore-batt-opt-dialog.png – adsamcik

相關問題