我需要将USB设备连接到nexus 10。该设备实现了鼠标接口(不是真正的鼠标,但它使用鼠标接口传输数据,这就是我的客户构建设备的方式)。
我无法在应用程序中捕获鼠标原始 USB 传输,我将为我的 Nexus 10 构建自定义 ROM。我的问题是 - 我可以避免这种情况吗?我可以以某种方式从 Android 访问鼠标原始事件吗?
谢谢你的帮助
如果设备正确实现,您应该通过常规渠道接收输入事件。没有关于设备的任何细节,很难说可能出了什么问题。
您可以使用InputManager收集一些信息。可能是设备需要一个配置文件,或者最坏的情况是它自己的驱动程序(你不能轻易提供)。
I managed to detect to the device finally(Problem was in my code). Here is the fixed code:
BroadcastReceiver mUsbReceiver= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
String message = "action:"+action+" device:"+device.getProductId()+" Vendor:"+device.getVendorId();
Toast.makeText(MainActivity.this, message, 3000).show();
if(device.getVendorId()==LEVITICUS_VENDOR_ID)
{
if(action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED))
{
handleDeviceAttached(device);
}
if(action.equals(UsbManager.ACTION_USB_DEVICE_DETACHED))
{
handleDeviceDettached(device);
}
}
}
};
private void registerUsbReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mUsbReceiver, filter);
}