Broadcat监视电量变化
2016-06-24 10:34
288 查看
/** *检测手机电量变化 * 使用registerReceiver(receiver, intentFilter);来注册广播,而不是在清单文件中注册<receiver><receiver> * 需要添加权限: * <uses-permission android:name="android.permission.BATTERY_STATS"/> * 在onResume()中注册广播 * registerReceiver(receiver, intentFilter); * 在onPause()中注销广播 * unregisterReceiver(receiver); *广播接收者中检测处理电量的变化 * 检测意图 电量变化:Intent.ACTION_BATTERY_CHANGED * * 获取当前电量 * int level = intent.getIntExtra("level", 0); * 获取总电量 * int scale = intent.getIntExtra("scale", 100); * * */ public class MainActivity extends Activity { TextView tv; private BroadcastReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView)findViewById(R.id.tv); } @Override protected void onResume() { super.onResume(); receiver = new MyReceiver(); //意图过滤器, 过滤电量变化 IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); //注册广播接收者 registerReceiver(receiver, intentFilter); } @Override protected void onPause() { super.onPause(); //注销广播接收者 unregisterReceiver(receiver); } /** * 广播接收者 */ private class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {//系统的电量变化action //当前电量 "level" int level = intent.getIntExtra("level", 0); //总电量 int scale = intent.getIntExtra("scale", 100); //显示 tv.setText("当前电量"+ (level * 100) / scale + "%"); } } } }
相关文章推荐
- QT QTreeWidget 选中某行并设置背景色高亮
- VMware虚拟机窗口设置
- Linux下必须知道的11个网络命令
- RecyclerView添加header和footer
- WinForm之控件Dock排列顺序
- Android 录音实现方法、仿微信语音、麦克风录音、发送语音、解决5.0以上BUG
- Gson中JsonElement的简单说明
- 自动驾驶进入第3阶段 ADAS黑科技守护开车人
- Python 小练习 剔除元音字母
- [团队项目]演示项目第二阶段团队贡献分 进一步界面人性化
- 个人总结
- java 引用
- Android反编译知识点
- 剑指offer---从尾到头打印链表
- ubuntu 14.04 安装Adobe Reader
- 深度学习(2)
- 影像算法瓶颈突破 汽车ADAS再进化
- spring mvc/mybatis整合,junit测试报BeanCreationException
- 华为机试---直方图内最大矩形
- git操作命令整理