在新Android M
版本中,电池优化功能会在某些情况下停止应用程序以节省电池,但对于VOIP
需要一直保持活力的应用程序,此功能会给开发者带来麻烦。
目前有一种绕过优化的方法,就是设置应用忽略优化,但是需要做的步骤太多。
我的问题是,有没有办法跳转忽略特定应用的优化页面,我怎么知道我的应用是否被排除在优化之外?
在新Android M
版本中,电池优化功能会在某些情况下停止应用程序以节省电池,但对于VOIP
需要一直保持活力的应用程序,此功能会给开发者带来麻烦。
目前有一种绕过优化的方法,就是设置应用忽略优化,但是需要做的步骤太多。
我的问题是,有没有办法跳转忽略特定应用的优化页面,我怎么知道我的应用是否被排除在优化之外?
警告:Google 似乎不允许 Play 商店中的应用执行此操作。请参阅下面的评论。
根据从 MPA44I 构建中的 Settings.apk 中提取的 AndroidManifest.xml,您似乎可以通过以下意图执行您想要的操作。
来自 XML:
<intent
android:action="android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
android:targetPackage="com.android.settings"
android:data="package:PUT_YOUR_PACKAGE_NAME_HERE" />
从代码:
try {
Intent intent = new Intent(android.provider.Settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:PUT_YOUR_PACKAGE_NAME_HERE"));
startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
请注意,我自己没有时间在实践中验证这一点,但该方法与我在我的一个应用程序中用于启动特定于应用程序的设置菜单的方法相同。不过,我希望它有所帮助。
目前没有办法有效地选择退出优化,因为这不会影响打盹模式 - 即使您的应用程序在白名单上。
见这里: https ://stackoverflow.com/a/31721398/4301846
在这里: https ://code.google.com/p/android-developer-preview/issues/detail?id=2225