Unity Android Usb 通信

本文介绍了一种不通过继承Unity activity来监听Android USB设备插拔和数据通信的方法。在Unity的Update中检查所有USB设备,根据pid和vid进行判断。通过将Android的UsbDevice传递给Unity,可以在Unity中操作设备。详细过程包括获取设备、请求权限、使用UsbEndpoint进行发送和接收,并提醒读者接收数据需另开线程。文章还提供了打包成aar的Android代码供参考,鼓励有问题的读者留言分享问题。
摘要由CSDN通过智能技术生成

Unity 监听安卓USB得插拔,以及数据通信(安卓是主)

因为不想通过Android 继承 Unity的activity这种方式实现(需要修改manifest)。

所以具体实现方式是在Unity的Update中获取所有usb设备,然后自己判断插拔。

   usbManager=(UsbManager)context.getSystemService(Context.USB_SERVICE);
  public  List<UsbDevice>  GetUsbDevice()
    {
        List<UsbDevice> alldevice = new ArrayList<>();
        HashMap<String,UsbDevice> deviceMap=usbManager.getDeviceList();
        Iterator<UsbDevice> iterator=deviceMap.values().iterator();
        while(iterator.hasNext()){
            UsbDevice nowDevice=iterator.next();
            alldevice.add(nowDevice);
        }
        return  alldevice;
    }

这是获取所有设备的代码。设备可以通过pid和vid 判断,然后也可以获取到设备类型,具体可以参考Android UsbDevice这个类。

我做法是直接把UsbDevice这个类返回到了Unity,然后就可以在Unity中获取这些数据了。

要打开UsbDevice需要申请权限,每次插拔设备后,都要重新获取权限。获取权限的方式,就是弹窗提示用户授权

   ACTION_USB_
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值