设置特定的应用程序忽略Android M中的代码优化

在新的Android M版本中,电池优化function将在一定条件下停止应用程序以节省电量,但​​对于需要始终保持活跃状态​​的VOIP应用程序,此function会给开发者带来麻烦。

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

我的问题是,有没有办法跳过忽略特定的应用程序的优化页面,我怎么知道我的应用程序是否被排除在优化?

  • Android 6.0棉花糖:奇怪的错误与片段animation
  • Android 6:不能共享文件了?
  • 预览 - Google Nexus 5X - 6.0.0(API 23)Gapps
  • 如何在启用了debugging的Android 6.0设备上更轻松地切换MTP?
  • Android 6.0权限.GET_ACCOUNTS
  • 如何在打盹模式下移动设备(Android Preview M / Marshmallow)?
  • 什么是com.google.android.gms.persistent,为什么总是使用CPU?
  • Android API-23:InetAddressUtils替换
  • 警告:Google似乎不允许Play商店中的应用程序执行此操作。 请参阅下面的评论。

    根据从MPA44I构build中的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(); } 

    请注意,我没有时间在实践中validation这一点,但方法与我在其中一个应用程序中用来启动应用程序特定设置菜单的方法相同。 不过,我希望它有帮助。

    目前没有办法有效地select优化,因为这不会影响hibernate模式 – 即使您的应用程序在白名单上。

    看到这里: https : //stackoverflow.com/a/31721398/4301846

    在这里: https : //code.google.com/p/android-developer-preview/issues/detail?id = 2225