9

デバイスが接続されているかどうかを検出できるようにしたいと思います。接続状態に対して実行できるのと同じ方法でクエリを実行できるようにしたいと思います。それは可能ですか、それともバッテリーイベントをリッスンするブロードキャストレシーバーを作成する必要がありますか?

4

1 に答える 1

23

どうやら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);
}
于 2011-06-02T17:23:38.447 に答える