Как я могу обнаружить 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
а также onReceive
intent.getInt(BatteryManager.EXTRA_PLUGGED)
и посмотреть, если значение BatteryManager.BATTERY_PLUGGED_USB
,