在Android M中将特定应用设置为忽略代码优化

在Android M中将特定应用设置为忽略代码优化,android,android-6.0-marshmallow,Android,Android 6.0 Marshmallow,在新的Android M版本中,电池优化功能将在某些情况下停止应用程序以节省电池,但对于需要一直保持活动状态的VOIP应用程序,此功能会给开发人员带来麻烦 目前有一种绕过优化的方法,就是将应用程序设置为忽略优化,但需要执行太多步骤 我的问题是,有没有办法跳转到忽略特定应用程序的优化页面,我如何知道我的应用程序是否被排除在优化之外?警告:谷歌似乎不允许Play Store上的应用程序这样做。请参阅下面的评论。 基于从MPA44I构建中的Settings.apk中提取的AndroidManifest

在新的
Android M
版本中,电池优化功能将在某些情况下停止应用程序以节省电池,但对于需要一直保持活动状态的
VOIP
应用程序,此功能会给开发人员带来麻烦

目前有一种绕过优化的方法,就是将应用程序设置为忽略优化,但需要执行太多步骤


我的问题是,有没有办法跳转到忽略特定应用程序的优化页面,我如何知道我的应用程序是否被排除在优化之外?

警告:谷歌似乎不允许Play Store上的应用程序这样做。请参阅下面的评论。

基于从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" />

请注意,我自己还没有时间在实践中验证这一点,但方法与我在一个应用程序中启动应用程序特定设置菜单的方法相同。尽管如此,我还是希望它能有所帮助。

目前没有有效的方法选择退出优化,因为这不会影响睡眠模式-即使你的应用程序在白名单上

请看这里:

在这里:

谷歌基于几个条件允许这样做 检查“对其他用例的支持”部分


也请为我的应用程序选中相同项。。这方面有什么更新吗?你不需要一直活着,你只需要在需要做事情的时候发送一个高优先级的GCM就行了小心-我的应用程序刚刚从Google Play暂停,没有事先通知请求
请求\u忽略电池\u优化
,尽管免除应用程序的电池优化对我的应用程序的功能至关重要,但由于技术原因,我不能使用GCM。@EladNava听到这个消息我很难过。我希望你能解决它。我将在上面的回答中包含一条警告。@EladNava Truecaller应用程序弹出“忽略电池优化?”提示,它们在Google play上。(为什么?)。我不知道,我只是想警告大家,因为我的应用程序因为请求这个而被暂停,尽管权限对它的功能至关重要。在一些使用案例中,谷歌允许或拒绝它。选中此项:
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();
}