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