7
我希望能夠檢測設備是否插入。我希望能夠以與連接狀態相同的方式進行查詢。這是可能的還是我需要創建一個廣播接收機來監聽電池事件?檢測正在插入的設備
我希望能夠檢測設備是否插入。我希望能夠以與連接狀態相同的方式進行查詢。這是可能的還是我需要創建一個廣播接收機來監聽電池事件?檢測正在插入的設備
顯然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()'方法。 – CaseyB 2011-06-02 18:04:55
我注意到,當設備連接到電源但電池已充滿電時,EXTRA_PLUGGED包含0。有沒有辦法檢測到它仍然連接到AC,以便我可以忽略EXTRA_PLUGGED? – 2016-10-10 12:38:14