2***@qq.com
2***@qq.com
  • 发布:2021-04-13 17:58
  • 更新:2023-05-05 21:43
  • 阅读:12449

安卓-电池优化、白名单

分类:Native.js

从 Android 6.0 开始,系统为了省电增加了休眠模式,系统待机一段时间后,会杀死后台正在运行的进程。但系统会有一个后台运行白名单,白名单里的应用将不会受到影响,在原生系统下,通过「设置」 - 「电池」 - 「电池优化」 - 「未优化应用」,可以看到这个白名单。

从网上查了些资料,找到:android应用申请加入电池优化白名单
根据上面资料转native.js,上代码。

  • ① 添加权限
    在manifest.json源码视图中添加<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />,就加在那一堆permissions中。

  • ② 判断我们的应用是否在白名单中

                   // 白名单  
                    var main = plus.android.runtimeMainActivity();  
                    var packName = main.getPackageName();    
                    var Context = plus.android.importClass("android.content.Context");  
                    var PowerManager = plus.android.importClass("android.os.PowerManager");  
                    // 获取电源类  
                    var pm = main.getSystemService(Context.POWER_SERVICE);  
                    console.log('是否在白名单:',pm.isIgnoringBatteryOptimizations(packName)); //是否白名单  
                    let whiteList = pm.isIgnoringBatteryOptimizations(packName);
  • ③ 调起服务

     try{  
            var Uri = plus.android.importClass("android.net.Uri");  
            var Settings = plus.android.importClass("android.provider.Settings");  
            var packageURI = Uri.parse("package:" + packName);  
            var intents = plus.android.newObject("android.content.Intent", Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,packageURI);  // 电池  
            main.startActivity(intents);   
        }catch{  
            // console.log('调起失败')  
        }
  • ④ 发行-云打包测试
    测试多次HbuliderX里是调不起来,打包后才能出来

总结:自己测试-打开应用,然后锁屏(半小时为例)
华为():仍然可以运行,收到消息
小米():中断,除了设置中的电池优化,还有应用详情的“省电策略”,需要再调试

1 关注 分享
rosstran

要回复文章请先登录注册