2013-11-15 167 views
0

我需要将USB设备连接到nexus 10.设备实现了鼠标接口(不是真的是鼠标,但它使用鼠标接口传输数据,这就是我的客户如何构建设备)。将USB设备连接到Android

我无法在应用程序中捕获鼠标原始USB传输,我将为我的Nexus 10构建自定义ROM。我的问题是 - 我可以避免这种情况吗?我能以某种方式访问​​Android的鼠标原始事件吗?

感谢您的帮助

回答

0

如果设备正确实施,你应该通过正常的渠道获得输入事件。在设备上没有任何细节,很难说什么可能是错的。

您可以使用InputManager来收集一些信息。它可能是该设备需要一个configuration file,或最坏的情况下它自己的驱动程序(你不能轻易提供)。

0

我设法最终检测到设备(问题出在我的代码中)。这里是固定的代码:

的BroadcastReceiver mUsbReceiver =新的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);  
}