Java usb附件信息广播接收器

Java usb附件信息广播接收器,java,android,broadcastreceiver,Java,Android,Broadcastreceiver,我有一个FTDI udb自定义设备连接到我的平板电脑,我可以连接到他,但我想忽略该消息 是否允许应用程序“MyAPP”访问USB设备? [选中标记]默认情况下用于此USB设备 取消OK 我正在尝试运行广播接收器,但消息在接收者收到消息之前,有人能告诉我为什么吗 注意:我的设备是根设备。 我的设备将是一个面板,用户不在那里点击 我的代码是: 舱单: <application android:icon="@drawable/ic_launcher" android:l

我有一个FTDI udb自定义设备连接到我的平板电脑,我可以连接到他,但我想忽略该消息

是否允许应用程序“MyAPP”访问USB设备? [选中标记]默认情况下用于此USB设备 取消OK

我正在尝试运行广播接收器,但消息在接收者收到消息之前,有人能告诉我为什么吗

注意:我的设备是根设备。 我的设备将是一个面板,用户不在那里点击

我的代码是:

舱单:

     <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类,因为我希望在每件事情开始之前创建它

有人能给我建议吗

谢谢

看看。

当您在
onCreate
中调用LaunchReceiver时,您在应用程序启动之前调用了它。这就是为什么在应用程序启动前会显示此消息。

从活动标签中删除意图过滤器和元数据。您还必须向reciver标签添加元数据(我相信元数据是USB_附件_附加操作所必需的)。这样,只有LaunchReceiver才会收到消息

另一种解决方案是将Receiver标记移动到before activity标记,因为消息首先由LaunchReceiver接收,然后由MainActivity接收

LaunchReceiver将被实例化,因此当事件发生时,将其放入根proyect包中


我希望我能帮助你,原谅我英语不好。来自委内瑞拉的问候。

对不起,我之前的回答错了。。。我正在检查USB附件是否在接收器和服务中起作用,但显然不是这样。我也有同样的问题。他们说他们说USB附件连接和USB附件分离动作在接收器中不起作用,只在解除活动时起作用。我可以和may proyect核对一下这个答案


请原谅我的英语不好,请原谅我的回答不好。关于

“问题在于,消息在我的应用程序启动之前,在onCreate of Main Activity中,您在哪里调用了LaunchReceiver?谢谢!我将usb启动连接切换到onResume(),如果它为空,但我关于usb的消息仍然在onCreate()创建日志之前。我在每个方法中都会发布日志。我试图创建一个清晰的日志,但我在理解它的工作原理时遗漏了一些东西(我是android新手)在我将.USB_附件_连接到意向过滤器后,谁会立即将此消息输入我或系统?我不明白。如果要按标签搜索,请使用
tag:YourTag
。因此,要创建LogCat,请使用:
Log.i(“YourTag”、“xxx”)当然可以使用方法的名称代替xxx。这将帮助您理解问题和生命周期我理解,但我想忽略的usb消息出现在任何消息之前,这意味着onCreate之前,可以吗?
    public class LaunchReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Log.d("UUU", "on launcher receive");
     }
}