美文网首页
2019-06-24

2019-06-24

作者: 静临挽歌 | 来源:发表于2019-06-24 18:23 被阅读0次

Android USB通信

积少成多:在一个工地门口,有4个通道用于考勤,对应4个上班考勤机和4个下班考勤机,然后把考勤数据及时的显示在门口的电视上。PS:考勤信息有今日考勤人数,在场人数,最新进场人数,最新离场人数等。

开发过程中遇到以下两个坑:

1:循环获取USB设备使用权限;

2:监听每个设备发来的信息;

对于循环获取权限

代码:

以上是代码,这里需要注意的是  因为用到了PendingIntent  所以所在的Activity需要设置启动模式为:singleInstance。

对于监听每个设备发来的信息

我使用的是github上的开源项目:usb-serial-for-android 

主要对其中TemperatureUsbControl类的startIoManager进行了改造,代码如下:

其中需要注意的是:每一个设备都需要启动一个线程池去不断读取USB端口,不能用一个线程池去同时监听所有设备。

最后

一天电视机只有2个USB接口,我使用的是USB分线器进行了拓展,起初研究的时候遇到了那个线程池的问题,我就以为是Android usb协议不支持USB分线器,后来调试的时候发现:同时连接两个设备的时候,只有一个设备能正常上传参数,但是连接是有两个的,我拔掉那个可用的设备后,另一个设备仍然没用,并不是我以为的连接被占用的情况,后来才发现是线程池的问题。

相关文章

网友评论

      本文标题:2019-06-24

      本文链接:https://www.haomeiwen.com/subject/dlaoqctx.html