5***@qq.com
5***@qq.com
  • 发布:2016-11-04 11:04
  • 更新:2021-06-18 17:25
  • 阅读:7415

通过Native.js来获取手机电量

分类:Native.js

最近在做一款APP,需要获取手机电量,折腾了好长时间,终于搞定,把代码分享出来,希望能帮助到一些需要这个功能的朋友。
好了,废话不多说,直接上代码

安卓手机代码

//注意,安卓需要配置下manifest.json文件,打开后,进入模块权限配置,在右侧的Android权限设置里勾选上android.permission.BATTERY_STATS  
var main = plus.android.runtimeMainActivity();  
var Intent = plus.android.importClass('android.content.Intent');  
var recevier = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
          onReceive: function(context, intent) {  
        var action = intent.getAction();  
        if (action == Intent.ACTION_BATTERY_CHANGED) {  
            var level   = intent.getIntExtra("level", 0); //电量  
            var voltage = intent.getIntExtra("voltage", 0); //电池电压  
            var temperature = intent.getIntExtra("temperature", 0); //电池温度  
                        //如需获取别的,在这里继续写,此代码只提供获取电量  
            console.log(level)  
        }  
     }  
 });  
var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
var filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);  
main.registerReceiver(recevier, filter); 

IOS代码

var UIDevice = plus.ios.import("UIDevice");  
var dev = UIDevice.currentDevice();  
if (!dev.isBatteryMonitoringEnabled()) {  
    dev.setBatteryMonitoringEnabled(true);  
}  
var level =dev.batteryLevel();
3 关注 分享
Trust lhyh Float

要回复文章请先登录注册

6***@qq.com

6***@qq.com

回复 6***@qq.com :
一直尝试运行main.unregisterReceiver(receiver);来取消监听,一直都没办法取消,仔细看了才知道原来作者写的是【recevier】我写的是【receiver】-_-!
2021-06-18 17:25
6***@qq.com

6***@qq.com

代码能用,但是一直调用这个,能够只调用一次吗?
2021-06-18 17:07
9***@qq.com

9***@qq.com

可以获取到电池状态么?
2021-01-12 17:03
1***@qq.com

1***@qq.com

安卓6以上,应用会闪退
2018-05-21 12:55