chrome.usb
描述: |
使用 chrome.usb API 与已连接的 USB 设备交互。该 API
提供了在应用的环境中进行 USB 操作的能力,通过该 API
应用可以作为硬件设备的驱动程序使用。
|
可用版本: |
从 Chrome 26 开始支持。
|
权限: |
"usb"
|
了解更多: |
访问硬件设备
|
摘要
类型 | |
---|---|
Direction | |
Device | |
ConnectionHandle | |
GenericTransferInfo | |
TransferResultInfo | |
方法 | |
getDevices −
chrome.usb.getDevices(object options, function callback)
| |
requestAccess −
chrome.usb.requestAccess( Device device, integer interfaceId, function callback)
| |
openDevice −
chrome.usb.openDevice( Device device, function callback)
| |
findDevices −
chrome.usb.findDevices(object options, function callback)
| |
closeDevice −
chrome.usb.closeDevice( ConnectionHandle handle, function callback)
| |
listInterfaces −
chrome.usb.listInterfaces( ConnectionHandle handle, function callback)
| |
claimInterface −
chrome.usb.claimInterface( ConnectionHandle handle, integer interfaceNumber, function callback)
| |
releaseInterface −
chrome.usb.releaseInterface( ConnectionHandle handle, integer interfaceNumber, function callback)
| |
setInterfaceAlternateSetting −
chrome.usb.setInterfaceAlternateSetting( ConnectionHandle handle, integer interfaceNumber, integer alternateSetting, function callback)
| |
controlTransfer −
chrome.usb.controlTransfer( ConnectionHandle handle, object transferInfo, function callback)
| |
bulkTransfer −
chrome.usb.bulkTransfer( ConnectionHandle handle, GenericTransferInfo transferInfo, function callback)
| |
interruptTransfer −
chrome.usb.interruptTransfer( ConnectionHandle handle, GenericTransferInfo transferInfo, function callback)
| |
isochronousTransfer −
chrome.usb.isochronousTransfer( ConnectionHandle handle, object transferInfo, function callback)
| |
resetDevice −
chrome.usb.resetDevice( ConnectionHandle handle, function callback)
|
类型
Direction
枚举 |
---|
"in" ,
or "out"
|
Device
属性 | ||
---|---|---|
integer | device |
从 Chrome 31 开始支持。 USB 设备的标识符,在设备拔出前不会更改。 |
integer | vendorId | |
integer | productId |
ConnectionHandle
从 Chrome 31 开始支持。
属性 | ||
---|---|---|
integer | handle |
USB 连接句柄的标识符。 |
integer | vendorId | |
integer | productId |
GenericTransferInfo
属性 | ||
---|---|---|
Direction | direction |
本次传输的方向。 |
integer | endpoint | |
integer | (可选) length |
如果本次传输是输入传输,则该字段表示输入缓冲区的大小。如果本次传输是输出传输,将忽略该字段。 |
ArrayBuffer | (可选) data |
如果是输出传输,则必须包含该字段,否则将忽略。 |
TransferResultInfo
属性 | ||
---|---|---|
integer | (可选) resultCode |
0 表示传输成功,其他值表示失败。 |
ArrayBuffer | (可选) data |
如果本次传输是输入传输,该字段将包含所有请求的输入数据。 |
方法
getDevices
chrome.usb.getDevices(object options, function callback)
requestAccess
chrome.usb.requestAccess( Device device, integer interfaceId, function callback)
从 Chrome 31 开始支持。
该方法仅用于 ChromeOS,在其他平台上调用该方法会失败。如果设备上的指定接口没有被占有,则请求访问操作系统占有的设备。
参数 | |||||
---|---|---|---|---|---|
Device | device |
要请求访问的设备。 |
|||
integer | interfaceId |
|
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(boolean sucess) {...};
|
openDevice
chrome.usb.openDevice( Device device, function callback)
从 Chrome 31 开始支持。
打开由 getDevices
返回的 USB 设备。
参数 | |||||
---|---|---|---|---|---|
Device | device |
要打开的 USB 设备。 |
|||
function | callback |
完成时调用,传递创建的 ConnectionHandle(连接句柄)。 callback 参数应该是一个如下形式的函数: function( ConnectionHandle handle) {...};
|
findDevices
chrome.usb.findDevices(object options, function callback)
寻找制造商标识符(venderId)/产品标识符(productId)/接口标识符(interfaceId)指定的 USB 设备,如果权限允许的话同时打开设备以便使用。
在 ChromeOS 上,您可以指定 interfaceId,在这种情况下,该方法使用与 requestUsbAcccess
一样的方式请求访问权限。
如果访问请求被拒绝,或者无法打开设备,则不会创建或返回连接句柄。
调用该方法与调用 getDevices
并使用 requestAccess
(如果是在 ChromeOS 上)和 openDevice
等价,同时返回所有成功打开的连接句柄。
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
object | options |
用于搜索目标设备的属性。
|
|||||||||
function | callback |
完成后调用,传递打开的 ConnectionHandle(连接句柄)。 callback 参数应该是一个如下形式的函数: function(array of ConnectionHandle handles) {...};
|
closeDevice
chrome.usb.closeDevice( ConnectionHandle handle, function callback)
关闭连接句柄。关闭设备后对其进行操作是安全的,而不会采取任何行动。
参数 | ||
---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要关闭的连接句柄。 |
function | (可选) callback |
设备关闭后调用的回调函数。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
listInterfaces
chrome.usb.listInterfaces( ConnectionHandle handle, function callback)
从 Chrome 29 开始支持。
列举 USB 设备上的所有接口。
参数 | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要列举接口的设备。 |
|||||||||||||||||||||||||||||||||||||||||||||
function | callback |
接口列举完成时调用的回调函数。 callback 参数应该是一个如下形式的函数: function(array of object descriptors) {...};
|
claimInterface
chrome.usb.claimInterface( ConnectionHandle handle, integer interfaceNumber, function callback)
在指定 USB 设备上获取接口。在您可以与端点传输数据前,您必须获取它们所属的接口。同一主机上的每一个接口只有一个连接句柄可以占有。如果接口已经被占有,该调用会失败。
不再需要接口时您应该调用 releaseInterface。
参数 | ||
---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要获取接口的设备。 |
integer | interfaceNumber | |
function | callback |
获取接口后调用的回调函数。 callback 参数应该是一个如下形式的函数: function() {...};
|
releaseInterface
chrome.usb.releaseInterface( ConnectionHandle handle, integer interfaceNumber, function callback)
释放在提供的设备上获取的接口。
参数 | ||
---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要释放接口的设备。 |
integer | interfaceNumber | |
function | callback |
接口释放后调用的回调函数。 callback 参数应该是一个如下形式的函数: function() {...};
|
setInterfaceAlternateSetting
chrome.usb.setInterfaceAlternateSetting( ConnectionHandle handle, integer interfaceNumber, integer alternateSetting, function callback)
在之前获取的设备接口上选择替代的设置。
参数 | ||
---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要设置接口设置的设备。 |
integer | interfaceNumber | |
integer | alternateSetting |
要设置的替代设置。 |
function | callback |
接口设置后调用的回调函数。 callback 参数应该是一个如下形式的函数: function() {...};
|
controlTransfer
chrome.usb.controlTransfer( ConnectionHandle handle, object transferInfo, function callback)
在指定设备上进行控制传输,有关进行传输所需要的参数,请参见 ControlTransferInfo 结构。
从概念上说,控制传输与设备本身通信,您不需要占有接口 0 来进行控制传输。
参数 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 进行传输的连接句柄。 |
||||||||||||||||||||||||
object | transferInfo |
传输的参数,参见 ControlTransferInfo。
|
||||||||||||||||||||||||
function | callback |
传输完成后调用。 callback 参数应该是一个如下形式的函数: function( TransferResultInfo info) {...};
|
bulkTransfer
chrome.usb.bulkTransfer( ConnectionHandle handle, GenericTransferInfo transferInfo, function callback)
在指定设备上进行大块传输。
参数 | |||||
---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 进行传输的连接句柄。 |
|||
GenericTransferInfo | transferInfo |
传输的参数,参见 GenericTransferInfo。 |
|||
function | callback |
传输完成后调用。 callback 参数应该是一个如下形式的函数: function( TransferResultInfo info) {...};
|
interruptTransfer
chrome.usb.interruptTransfer( ConnectionHandle handle, GenericTransferInfo transferInfo, function callback)
在指定设备上进行中断传输。
参数 | |||||
---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 进行传输的连接句柄。 |
|||
GenericTransferInfo | transferInfo |
传输的参数,参见 GenericTransferInfo。 |
|||
function | callback |
传输完成后调用。 callback 参数应该是一个如下形式的函数: function( TransferResultInfo info) {...};
|
isochronousTransfer
chrome.usb.isochronousTransfer( ConnectionHandle handle, object transferInfo, function callback)
在指定设备上进行同步传输。
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 进行传输的连接句柄。 |
|||||||||
object | transferInfo |
传输的参数,参见 IsochronousTransferInfo。
|
|||||||||
function | callback |
传输完成后调用。 callback 参数应该是一个如下形式的函数: function( TransferResultInfo info) {...};
|
resetDevice
chrome.usb.resetDevice( ConnectionHandle handle, function callback)
从 Chrome 28 开始支持。
尝试重置 USB 设备,并恢复原来的状态。如果重置失败,指定的连接句柄将会关闭,USB 设备就像断开连接后再重新连接一样。在这种情况下,您必须再次调用 findDevices
获取设备。
参数 | |||||
---|---|---|---|---|---|
ConnectionHandle | handle |
从 Chrome 31 开始支持。 要重置的连接句柄。 |
|||
function | callback |
设备重置后调用,传递的布尔值表示重置是否成功完成。 callback 参数应该是一个如下形式的函数: function(boolean result) {...};
|