android如何监听usb串口的插拔

superryq 2018-02-26 05:19:22
最近在做一个android App,用到串口通信。其他都正常,但是在真机调试的时候,真机通过串口线连接外部设备来接收数据,当串口线拔掉之后,再重新插入就无法接收到数据了,监听usb的插拔广播没有效果,求各位大佬指点迷津
...全文
1272 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
比特灵 初级 2021-04-15
  • 打赏
  • 举报
回复
主要是2个事件:1,USB插入;2,USB授权。

    //申请USB权限用
    private static final String ACTION_USB_PERMISSION = "自定义的,随便.USB_PERMISSION";

    /**
     * USB授权
     */
    private final BroadcastReceiver usbPermissionReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (ACTION_USB_PERMISSION.equals(action)) {//授权:还需要判断是同意还是拒绝、是否针对当前设备

            } else if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
                Log.d(tag, "USB设备插入");

            }
        }
    };


  //在合适的地方做注册
            IntentFilter filter = new IntentFilter();
            filter.addAction(ACTION_USB_PERMISSION);
            filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
            filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
            context.registerReceiver(usbPermissionReceiver, filter);
西门铁柱 2021-04-15
  • 打赏
  • 举报
回复
你好,我现在也遇到同样的问题,求教如何监听
西门铁柱 2021-04-15
  • 打赏
  • 举报
回复
有用!非常感谢您。
superryq 2018-02-28
  • 打赏
  • 举报
回复
引用 2 楼 usecf 的回复:
你有没有注册usb广播 <receiver android:name="com.coeus.screentapdemo.receiver.UsbConnectionReceiver" > <intent-filter android:priority="1000" > <action android:name="android.hardware.usb.action.USB_STATE" /> </intent-filter> </receiver>
感谢指教,现在可以了,是获取的广播消息不对
usecf 2018-02-27
  • 打赏
  • 举报
回复
你有没有注册usb广播 <receiver android:name="com.coeus.screentapdemo.receiver.UsbConnectionReceiver" > <intent-filter android:priority="1000" > <action android:name="android.hardware.usb.action.USB_STATE" /> </intent-filter> </receiver>

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧