Android编程实现对电池状态的监视功能示例
程序员文章站
2024-03-03 22:10:10
本文实例讲述了android编程实现对电池状态的监视功能。分享给大家供大家参考,具体如下:
最近在开发一个与gps相关的项目,因为其中涉及到了gps的使用,众所周知,gp...
本文实例讲述了android编程实现对电池状态的监视功能。分享给大家供大家参考,具体如下:
最近在开发一个与gps相关的项目,因为其中涉及到了gps的使用,众所周知,gps是相当耗电的,因此就想着怎么能知道当前的电量,并且在电量达到一个下限的时候,及时提醒给用户,以根据情况关闭gps,节省电量,以备电话急用,后来查资料,看api,终于找到了方法,怎么来监视电量,根据电量的变化来获取当前的电量多少,并且根据其它状态综合对手机进行管理,以达到管理最优的状态。
下面是代码:
private broadcastreceiver mbatinforeceiver = new broadcastreceiver() { int intlevel = 0; int intscale = 0; public void onreceive(context context, intent intent) { string action = intent.getaction(); /* * 如果捕捉到的action是action_battery_changed, 就运行onbatteryinforeceiver() */ if (intent.action_battery_changed.equals(action)) { intlevel = intent.getintextra("level", 0); intscale = intent.getintextra("scale", 100); // 电池伏数 log.d("battery v", "" + intent.getintextra("voltage", 0)); // 电池温度 log.d("battery t", "" + intent.getintextra("temperature", 0)); batteryv = "当前电压为:" + intent.getintextra("voltage", 0); batteryt = "当前温度为:" + intent.getintextra("temperature", 0); switch (intent.getintextra("status", batterymanager.battery_status_unknown)) { case batterymanager.battery_status_charging: batterystatus = "充电状态"; break; case batterymanager.battery_status_discharging: batterystatus = "放电状态"; break; case batterymanager.battery_status_not_charging: batterystatus = "未充电"; break; case batterymanager.battery_status_full: batterystatus = "充满电"; break; case batterymanager.battery_status_unknown: batterystatus = "未知道状态"; break; } switch (intent.getintextra("plugged", batterymanager.battery_plugged_ac)) { case batterymanager.battery_plugged_ac: batterystatus2 = "ac充电"; break; case batterymanager.battery_plugged_usb: batterystatus2 = "usb充电"; break; } switch (intent.getintextra("health", batterymanager.battery_health_unknown)) { case batterymanager.battery_health_unknown: batterytemp = "未知错误"; break; case batterymanager.battery_health_good: batterytemp = "状态良好"; break; case batterymanager.battery_health_dead: batterytemp = "电池没有电"; break; case batterymanager.battery_health_over_voltage: batterytemp = "电池电压过高"; break; case batterymanager.battery_health_overheat: batterytemp = "电池过热"; break; } } } };
这些信息就是监听广播,根据广播的信息进行判断,如果是电量变化的广播,那么就根据这些信息,更新数据,从而进行分析!
更多关于android相关内容感兴趣的读者可查看本站专题:《android数据库操作技巧总结》、《android编程之activity操作技巧总结》、《android文件操作技巧汇总》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》、《android资源操作技巧汇总》、《android视图view技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。