Android监听电池电量

第一步:创建一个广播接收者,继承自BroadcastReceiver

private class BatteryLevelReceiver extends BroadcastReceiver{

        @Orerride

        public void onReceive(Context comtext,Intent intent){

        String action = intent.getAction();

        if(Intent.ACTION_BATTERY_CHANGED.equals(action)){

                 log.d(TAG,"receive the battery's change,action is:"+action);

                int currentLevel = intent.getIntExtra(BatteryManage.EXTRA_LEVEL,0);

                log.d(TAG,"the battery level is:"+currentLevel);//打印电池电量

                int maxLevel =  intent.getIntExtra(BatteryManage.EXTRA_SCALE,0);//电量最大值

                float percent = currentLevel / maxLevel *100;

        }    else if(Intent.ACTION_POWER_CONNECTED.equals(action)){

                log.d(TAG,"the usb is connected");//usb已连接

        }    else if(Intent.ACTION_POWER_DISCONNECTED.equals(action)){

                log.d(TAG,"the usb is disconnected");//usb已断开

        }

       

        

}

在Activity的onCreate()方法中写以下步骤(2-5):

第二步:要收听的频道是电量变化

IntentFilter it=new IntentFielter();

第三步:设置频道

it.addAction(Intent.ACTION_BATTERY_CHANGED);//电量发生改变时

it.addAction(Intent.ACTION_BATTERY_CONNECTED);//USB连接

it.addAction(Intent.ACTION_BATTERY_DISCONNECTED);//USB断开

第四步:

BatteryLevelReceiver blr=new BatteryLevelReceiver();

第五步:注册广播,动态注册形式

this.registerReceiver(blr,it);

}

        @Orerride

        public void onDestroy(Context comtext,Intent intent){

        super.destroy();

        if(blr!= null){

                this.unregisterReceiver(blr);//取消监听,否则会导致内存泄漏

        }

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值