2013-12-18 5 views
0

У меня есть FTDI UDB пользовательского устройство, подключенное к моей таблетке, и я могу подключиться к нему, но я хочу, чтобы игнорировать сообщениеBroadcastReceiver для USB аксессуар сообщения

Разрешить приложение «MyApp» для доступа к устройству USB? [галочка] Использовать по умолчанию для этого USB-устройства Отмена OK

Я пытаюсь запустить BroadcastReceiver но сообщение перед тем, ресивер получает сообщение, может кто-нибудь совет, почему

Примечание: мое устройство корни. Мое устройство будет панелью, которую пользователь не будет там щелкнуть.

мой код:

манифеста:

 <application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:largeHeap="true" 
    android:theme="@style/AppTheme" > 



    <activity 
     android:name=".MainActivity" 
     android:screenOrientation="landscape" > 

     <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /> 
     </intent-filter> 


     <meta-data 
      android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" 
      android:resource="@xml/accessory_filter" > 
     </meta-data> 

    </activity> 
    <receiver android:name=".LaunchReceiver" > 
     <intent-filter> 
      <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /> 
     </intent-filter> 
    </receiver> 
</application> 

LaunchReceiver класс:

public class LaunchReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Log.d("UUU", "on launcher receive"); 
    } 
} 

проблема в том, что данное сообщение, прежде чем

Иным проблема моего приложения Start является что я не знаю, где создать класс LaunchReceiver, потому что я хочу его раньше y начинается.

может любой совет?

спасибо !!

+0

«проблема в том, что сообщение до начала моего приложения« где вы назвали LaunchReceiver? – Serafins

+0

в onCreate of MainActivity – user1361207

ответ

0

Посмотрите на here.
enter image description here Когда вы вызвали LauncherReceiver в onCreate, вы вызвали его перед запуском приложения. Вот почему у вас есть сообщение перед запуском вашего приложения.

+0

Спасибо! Я переключил начало соединения usb на onResume(), если оно равно null, но все же мое сообщение об usb находится перед onCreate() – user1361207

+0

Create Log.i в каждом методе и опубликовать свой LogCat – Serafins

+0

Я пытаюсь создать ясный логарифм, но мне не хватает чего-то в понимании того, как это работает (я новичок в android), который помещает это сообщение я или систему, как только я помещаю .USB_ACCESSORY_ATTACHED в фильтре намерения? – user1361207

0

Удалить фильтр намерения и метаданные из метки активности. Вы также должны добавить метаданные в тег reciver (я считаю, что метаданные необходимы для действия USB_ACCESSORY_ATTACHED). При этом сообщение будет возвращено только для LaunchReceiver.

Другое решение - тег recive для перемещения до тега активности, так как сообщение принимается сначала LaunchReceiver и после MainActivity.

LaunchReceiver будет создан для SO при возникновении события, поместите его в корневой пакет proyect.

Надеюсь, я помогу вам и извини за мой плохой английский. Привет из венесуэлы.

0

Извините, я ошибся в своем предыдущем ответе ... Я читал, если USB_ACCESSORY_ATTACHED работает в ресивере и службах, но, видимо, это не так. Here есть такая же проблема. Говорят, они говорят, что действия USB_ACCESSORY_ATTACHED и USB_ACCESSORY_DETACHED не работают в ресивере, они работают только в действии. Я мог бы проверить этот ответ, возможно, с помощью proyect.

Недавно извините за мой плохой английский и извините за плохой ответ. С уважением

Смежные вопросы