【问题标题】:Detecting the device being plugged in检测正在插入的设备
【发布时间】:2011-06-02 17:03:14
【问题描述】:

我希望能够检测设备是否已插入。我希望能够以与我们对连接状态相同的方式进行查询。这可能吗,还是我需要创建一个广播接收器来监听电池事件?

【问题讨论】:

    标签: android battery power-state


    【解决方案1】:

    显然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() 方法中。
    • 我注意到当设备连接到电源但电池已充满电时,EXTRA_PLUGGED 包含 0。有没有办法检测到它仍然连接到 AC,以便我可以忽略 EXTRA_PLUGGED ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多