华为手机电池优化白名单

华为手机电池优化白名单
最新回答
卿绡

2022-07-31 20:25:14

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

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

① 添加权限
在manifest.json源码视图中添加,就加在那一堆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里是调不起来,打包后才能出来
总结:自己测试-打开应用,然后锁屏(半小时为例