【发布时间】:2011-06-02 17:03:14
【问题描述】:
我希望能够检测设备是否已插入。我希望能够以与我们对连接状态相同的方式进行查询。这可能吗,还是我需要创建一个广播接收器来监听电池事件?
【问题讨论】:
标签: android battery power-state
我希望能够检测设备是否已插入。我希望能够以与我们对连接状态相同的方式进行查询。这可能吗,还是我需要创建一个广播接收器来监听电池事件?
【问题讨论】:
标签: android battery power-state
显然ACTION_BATTERY_CHANGED 是一个“粘性广播”,这意味着您可以在广播后随时注册并接收它。要获得插入状态,您可以执行以下操作:
public void onCreate() {
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
// on AC power
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
// on USB power
} else if (plugged == 0) {
// on battery power
} else {
// intent didnt include extra info
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);
}
【讨论】:
unregisterReceiver(this); 添加到onReceive() 方法中。