android串口转usb检测不到设备,【已解决】Android设备作为Host希望实现可以检测到USB设备插入...
【背景】需要在一个android的app中实现检测usb插入的事件。【折腾过程】1.参考:看到这个:android.intent.action.UMS_CONNECTED2.去搜:UMS_CONNECTED找到官网的:中的:StringACTION_UMS_CONNECTEDThis constant was deprecated in API level 14. replaced by andr
【背景】
需要在一个android的app中实现检测usb插入的事件。
【折腾过程】
1.参考:
看到这个:android.intent.action.UMS_CONNECTED
2.去搜:
UMS_CONNECTED
找到官网的:
中的:String
ACTION_UMS_CONNECTED
This constant was deprecated in API level 14. replaced by android.os.storage.StorageEventListener
3.所以再去找StorageEventListener,找到:
但是感觉有问题:
USB的class中,有很多种。
此处,我希望检测的是android设备作为HOST,然后外接USB设备:一个USB接口的HART猫,内部就是USB接口的串口,所以,不是这个MSC的类。
所以,感觉应该不是用这个“USB Mass Storage”才对。
4.再去继续找。
->
看到有:android.hardware.usb.action.USB_DEVICE_ATTACHED和ACTION_USB_DEVICE_DETACHED
比较像是我要找的。
5.然后就是:
去看
确保了解Android中USB的Host的逻辑。
6.关于“uses-feature”去学习和总结一下:
然后对应的此处这里的android的app,需要硬件USB OTG以支持USB Host功能,所以写成:
7.接着去学习USB知识。
看了:
的解释才知道:
原来对于之前加的那个intent-filter和meta-data的话,是:When users connect a device that matches your device filter, the system presents them with a dialog that asks if they want to start your application.
也就是:
我之前就看到的:
当插入USB,程序还没有运行,就可以看到:
系统检测到对应的USB插入了,然后系统提供的弹出的对话框,问是否打开此程序
但是:
此种效果,明显不是我所需要的。
我需要的是:
在程序已经运行的情况下,去:
动态检测,当前所希望的USB设备,是否插入。
所以,貌似需要去使用其所说的:
了。
8.参考:
去找找:
android.hardware.usb.action
找到:
中的:public static finalStringACTION_USB_DEVICE_ATTACHED
Broadcast Action: A broadcast for USB device attached event. This intent is sent when a USB device is attached to the USB bus when in host mode.containing thefor the attached device
Constant Value:"android.hardware.usb.action.USB_DEVICE_ATTACHED"
public static finalStringACTION_USB_DEVICE_DETACHED
Broadcast Action: A broadcast for USB device detached event. This intent is sent when a USB device is detached from the USB bus when in host mode.containing thefor the detached device
Constant Value:"android.hardware.usb.action.USB_DEVICE_DETACHED"
9.再去搜:
android.hardware.usb.action.USB_DEVICE_ATTACHED
结果回到了:
10.参考:
需要去搞懂如何才能:
”注册一个广播接收“
11.参考:
再去搜:
onReceive
找到:
和:
12.搜:
registerReceiver
看到:
再去参考:
13.最后参考:
再去参考:
14.后来差点解决了,结果遇到android的bug导致没解决:
15.现在,只能再去想其他办法,解决这个动态监听检测USB设备插入的事件。
在此之前,先要去解决:
16.目前,能想到的是,通过另起一个进程,做这个事情,
所以,先去搞懂:
17.上述已经实现了thread+handler去处理usb的检测了。
此处,后来看到:
中的Timer的schedule的TimerTask,所以打算去试试:
【总结】
至此:
既可以用thread,也可以用timer的TimeTask去实现:
动态检测USB设备插入的动作。
都还是不错的。
更多推荐
所有评论(0)