Broadcat监视电量变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Broadcat监视电量变化相关的知识,希望对你有一定的参考价值。

/**
 *检测手机电量变化
 *     使用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 + "%");
            }
        }
    }

}

 

以上是关于Broadcat监视电量变化的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 监视变量变化

为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?

求教C++下怎样监视每个变量的数值变化,要求详细

Android源码笔记--电量

使用 perl (macos 和 linux) 监视文件的更改

手机影音第七天 视频的播放下一个视频功能实现,视频进度电量变化的实现