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

安卓-电池优化、白名单

分类: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

要回复文章请先登录注册

bobQ

bobQ

白名单之前打包的版本都挺好用,今天打的都不行了,云打包,我感觉是云有问题
2023-05-05 21:43
8***@qq.com

8***@qq.com

第三步那个无法调起服务,测试机是小米手机
2022-07-19 15:48
maozai

maozai

大佬们同求,你们都写完了嘛?
2021-11-19 11:44
2***@qq.com

2***@qq.com

回复 z***@sina.cn :
有手就行
2021-07-10 08:09
1***@qq.com

1***@qq.com

回复 z***@sina.cn :
我需要保持后台活跃websocket. 大佬加个好友交流下哇 QQ1154516798
2021-07-09 12:18
z***@sina.cn

z***@sina.cn

回复 1***@qq.com :
你是什么问题需要电池优化啊
2021-07-09 11:50
1***@qq.com

1***@qq.com

同求,pm.isIgnoringBatteryOptimizations这句话会报错,提示undefined
2021-07-09 11:35
z***@sina.cn

z***@sina.cn

你好,我想咨询一下你这个电池优化的问题,如何才能联系上你啊。我使用了你上面的代码,没有效果,无法弹出设置的页面。我的电话是15000606942,微信同,特别期望能向你请教。
2021-07-08 17:47