Как я могу обнаружить USB-соединение в Android 4.2?

Я использовал ACTION_MEDIA_MOUNTED а также ACTION_MEDIA_UNMOUNTED обнаружить USB соединение на Nexus 4, но я не могу получить сигнал вещания.

Вот мой код приемника вещания:

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
filter.addDataScheme("file");

debugReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (Intent.ACTION_MEDIA_MOUNTED.equals(action)) {
            debugOn = true;
        } else if (Intent.ACTION_MEDIA_UNMOUNTED.equals(action)) {
            debugOn = false;
        }
    }
};
registerReceiver(debugReceiver, filter);

Есть идеи? Я также искал другие вопросы; они сказали, если я добавлю

"filter.addDataScheme("file");"

Я получу сигнал, но я попытался, и ничего не было получено.

1 ответ

Решение

Использование UsbManager.ACTION_USB_DEVICE_ATTACHED а также UsbManager.ACTION_USB_DEVICE_DETACHED для вашего намерения фильтра.

Чтобы проверить подключение к ПК, используйте Intent.ACTION_BATTERY_CHANGED а также onReceiveintent.getInt(BatteryManager.EXTRA_PLUGGED) и посмотреть, если значение BatteryManager.BATTERY_PLUGGED_USB,

Другие вопросы по тегам