Android 中,Broadcast是一种在应用程序之间进行传输信息的机制。BroadcastReceiver对发送过来的Broadcast进行过滤和响应。根据这种机制,我们可以获取电池现有电量等信息。

1、实例化BroadcastReceiver

  在接受信息的时候,可以通过intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)来判断接收的信息是否为电池电量变化信息。如果是,就获取此信息的详细情况。

private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){                int level = intent.getIntExtra("level", 0);                int scale = intent.getIntExtra("scale", 100);                batteryView.setText("BatteryLevel " + String.valueOf(level*100/scale)+"%");            }        }    };

2、注册消息接收器

  在onResume方法内注册消息接收器用来接收消息

registerReceiver(batteryInfoReceiver, new intentFilter(Intent.ACTION_BATTERY_CHANGED)); 

3、注销消息接收器

  在onPause方法内注销消息接收器

 unregisterReceiver(batteryInfoReceiver); 

4、完整代码

public class MainActivity extends AppCompatActivity {    private TextView batteryView;    private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){                int level = intent.getIntExtra("level", 0);                int scale = intent.getIntExtra("scale", 100);                batteryView.setText("BatteryLevel " + String.valueOf(level*100/scale)+"%");            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        batteryView = (TextView) this.findViewById(R.id.batteryView);    }    @Override    protected void onResume(){        super.onResume();        registerReceiver(batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));    }    @Override    protected void onPause(){        super.onPause();        unregisterReceiver(batteryInfoReceiver);    }}

更多相关文章

  1. Android中获取应用程序(包)的信息-----PackageManager的使用
  2. android 消息机制与仿新闻客户端
  3. Android之Handler消息机制
  4. Android消息循环分析
  5. Android异步消息处理之Thread+Handler
  6. Android线程与异步消息处理机制
  7. android的消息处理机制(Looper,Handler,Message)
  8. Android的消息机制分析
  9. android中实现消息推送

随机推荐

  1. Android studio share项目到svn仓库
  2. Android(安卓)Shell命令dumpsys
  3. Android 学习日记(二)android studio运行gi
  4. android app -- Picasso 二级缓存加载图
  5. android 中文字体向上偏移解决方案
  6. Android socket和Tomcat等网络连接不上问
  7. Android Apk反编译得到Java源代码
  8. Android 使用Sharedpreference存储数据
  9. 08 Android 使用Thread操作UI
  10. 有了 Nook2Android,Nook Color 随时变身