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_