Android 3.1 USB-Host - BroadcastReceiver не получает USB_DEVICE_ATTACHED

Я проработал описание и образцы для USB-хоста на сайте developer.android.com , чтобы обнаружить подключенные и отсоединенные USB-устройства. устройств.

Если я использую фильтр намерений в файле манифеста для запуска моего приложения при подключении устройства, он работает отлично: подключите, устройство обнаружено, Android запрашивает разрешение на запуск приложения, информация об устройстве отображается в стол.

Приложение, которое я разрабатываю, не должно запускаться / завершаться только в том случае, если устройство подключено / отсоединено (например, в целях управления данными). Также я не хочу, чтобы открывалось диалоговое окно, если приложение уже запущено. Поэтому я решил не начинать деятельность напрямую, если устройство подключено, а зарегистрировать BroadcastReceiver, который (позже) должен уведомлять об активности, если устройство подключено / отсоединено. Этот приемник прекрасно распознает действие отсоединения, но не действие присоединения.

Мне не хватает разрешения или атрибута данных или чего-то подобного? В руководстве и примерах ничего не говорится о дополнительных необходимых атрибутах.

Вот файл манифеста:










    
        
            
            
        

        
        
    

И получатель:

public class FDRDetector extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();

    Toast.makeText(context, "Action: " + action, 3).show();
            // pops up only if action == DETACHED
}

Я не понимаю, почему работает тот же фильтр намерений, если я их использую по активности, но не в том случае, если они применяются к получателю? Даже если я настроил приемник и фильтр в коде, присоединения не распознаются.

Моя рабочая среда: IDE: Eclipse 3.7 с подключаемым модулем Android

Устройство: Acer Iconia Tab A500

Android: 3.1

Заранее спасибо

34
задан Valery Viktorovsky 16 September 2015 в 17:26
поделиться