2012-07-31 101 views
3

我想开发一个使用USB实验API的Chrome扩展。我从来没有设法找到我的USB设备连接。我的这个扩展的起点是这样的代码: knob example 我改变了VID和PID来匹配我的USB设备,但没有任何成功。我在Windows上尝试了金丝雀和开发者频道。Chrome实验USB API没有找到任何设备连接

看见我没有结果,我修改清单到:

{ 
    "name": "USB Spinner", 
    "version": "0.1", 
    "manifest_version": 2, 
    "app": { 
     "background": { 
      "scripts": ["background.js"] 
     } 
    }, 
    "permissions": [ 
     "app.window", 
     "experimental", 
     "usb" 
    ] 
} 

我加入权限实验ANS USB字段。但仍然没有结果。

我的代码来访问USB设备:

var VENDOR_ID = 0x1234; 
var PRODUCT_ID = 0x0006; 

var usb = chrome.experimental.usb; 

var deviceOptions = { 
    onEvent: function(usbEvent) { 
    } 
}; 

usb.findDevice(
    VENDOR_ID, 
    PRODUCT_ID, 
    deviceOptions, 
    function(device) { 
     if (!device) { 
      console.log('device not found'); 
      return; 
     } 
     console.log('Found device: ' + device.handle); 
    } 
); 

任何帮助将非常感激。

我错过了什么?

+0

你在'chrome:// flags'上启用了实验性的API吗? – 2012-07-31 09:25:51

+0

是的实验延期启用 – samux 2012-07-31 18:52:28

+0

@samux,您的清单是正确的。某些设备不能直接访问,因为操作系统内核在用户空间代码有机会执行它之前(例如MacOSX中的HID设备)获取并解释它们。 Chromium USB支持基于libusb(目前的Canary 1.0.8)。如果您想测试您的设备是否适合您的Chrome应用,那么您可以使用任何基于libusb的客户端进行测试。 – mangini 2012-07-31 22:40:14

回答

0

正如mangini所说,chrome.usb无法访问HID级设备,因为底层操作系统在API实现获得机会之前获取它们。幸运的是,我们正在解决这个问题。请按照the tracking bug for adding USB HID support的要求提供有关API的适用性和实施​​质量的反馈。

相关问题