Cordova + Android 6 盒

Cordova + Android 6 doze

我为 Android 开发了一个套接字应用程序(实时)。一切正常,直到 Android 6 更新带来 "doze" 模式。有没有防止打瞌睡的插件?这使我的应用程序无用,因为当应用程序进入打瞌睡模式时,应用程序无法再使用网络连接。我是 运行 后台模式插件,但这还不够,打瞌睡接管了。 谢谢。

编辑: 根据 Emanuel 的评论,我发现 this post 关于它但没有有效答案。

如何将我的应用程序添加到白名单,使其不会在 "doze" 之前停止?我在任何地方都找不到任何信息...除了 this doc,但没有说明如何添加到白名单。由于我的应用程序不依赖于 GCM,我应该很好,如果我能找到如何添加我的应用程序!

没有防止打瞌睡的插件

但用户可以在“设置”>“电池”>“电池优化”中手动配置白名单。或者,系统为应用程序提供了要求用户将它们列入白名单的方法。

应用可以触发 ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 意图,将用户直接带到电池优化,他们可以在其中添加应用。

检查这个:https://developer.android.com/training/monitoring-device-state/doze-standby.html

使用此 cordova 插件从电池优化设置中以编程方式列出 Android 应用程序

安装

cordova plugin add https://github.com/thomas550i/cordova-plugin-doze-Optimize

Javascript 使用代码

cordova.plugins.DozeOptimize.IsIgnoringBatteryOptimizations(function (responce){
  console.log("IsIgnoringBatteryOptimizations: "+responce);
      if(responce=="false")
      {
        cordova.plugins.DozeOptimize.RequestOptimizations(function (responce){
          console.log(responce);
        }, function (error){
        console.error("BatteryOptimizations Request Error"+error);          
        });
      }
      else
      {
        console.log("Application already Ignoring Battery Optimizations");
      }     
}, function (error){
console.error("IsIgnoringBatteryOptimizations Error"+error);    
});