Descrição
Use a API chrome.usb para interagir com dispositivos USB conectados. Essa API oferece acesso a operações USB no contexto de um app. Com ela, os apps podem funcionar como drivers para dispositivos de hardware. Os erros gerados por essa API são informados definindo runtime.lastError e executando o callback regular da função. Nesse caso, os parâmetros regulares do callback serão indefinidos.
Permissões
usbTipos
ConfigDescriptor
Propriedades
- 
    ativobooleano Chrome 47 ou mais recenteEsta é a configuração ativa? 
- 
    configurationValuenúmero O número da configuração. 
- 
    descriçãostring opcional Descrição da configuração. 
- 
    extra_dataArrayBuffer Dados extras do descritor associados a essa configuração. 
- 
    interfacesInterfaces disponíveis. 
- 
    maxPowernúmero A potência máxima necessária para este dispositivo em miliampères (mA). 
- 
    remoteWakeupbooleano O dispositivo é compatível com ativação remota. 
- 
    selfPoweredbooleano O dispositivo é alimentado por bateria. 
ConnectionHandle
Propriedades
- 
    handlenúmero Um handle opaco que representa essa conexão com o dispositivo USB e todas as interfaces reivindicadas e transferências pendentes associadas. Um novo identificador é criado sempre que o dispositivo é aberto. O identificador de conexão é diferente de Device.device.
- 
    productIdnúmero O ID do produto. 
- 
    vendorIdnúmero O ID do fornecedor do dispositivo. 
ControlTransferInfo
Propriedades
- 
    dadosArrayBuffer opcional Os dados a serem transmitidos (obrigatório apenas para transferências de saída). 
- 
    direçãoA direção da transferência ( "in"ou"out").
- 
    indexnúmero O campo wIndex, consulte Ibid.
- 
    comprimentonumber optional O número máximo de bytes a serem recebidos (obrigatório apenas para transferências de entrada). 
- 
    destinatárioO destino da transferência. O destino fornecido por indexprecisa ser reivindicado se for"interface"ou"endpoint".
- 
    solicitaçãonúmero O campo bRequest. Consulte Universal Serial Bus Specification Revision 1.1 § 9.3.
- 
    requestTypeO tipo de solicitação. 
- 
    timeoutnumber optional Chrome 43 ou mais recenteTempo limite da solicitação (em milissegundos). O valor padrão 0indica que não há tempo limite.
- 
    valornúmero O campo wValue, consulte Ibid.
Device
Propriedades
- 
    dispositivonúmero Um ID opaco para o dispositivo USB. Ele permanece inalterado até que o dispositivo seja desconectado. 
- 
    manufacturerNamestring Chrome 46 ou mais recenteA string iManufacturer lida do dispositivo, se disponível. 
- 
    productIdnúmero O ID do produto. 
- 
    productNamestring Chrome 46 ou mais recenteA string iProduct lida do dispositivo, se disponível. 
- 
    serialNumberstring Chrome 46 ou mais recenteA string iSerialNumber lida do dispositivo, se disponível. 
- 
    vendorIdnúmero O ID do fornecedor do dispositivo. 
- 
    versionnúmero Chrome 51 ou mais recenteA versão do dispositivo (campo bcdDevice). 
DeviceFilter
Propriedades
- 
    interfaceClassnumber optional Classe de interface USB, corresponde a qualquer interface no dispositivo. 
- 
    interfaceProtocolnumber optional Protocolo de interface USB, verificado apenas se a subclasse da interface corresponder. 
- 
    interfaceSubclassnumber optional Subclasse da interface USB, verificada apenas se a classe da interface corresponder. 
- 
    productIdnumber optional ID do produto do dispositivo, verificado apenas se o ID do fornecedor corresponder. 
- 
    vendorIdnumber optional ID do fornecedor do dispositivo. 
DevicePromptOptions
Propriedades
- 
    filtrosDeviceFilter[] opcional Filtra a lista de dispositivos apresentada ao usuário. Se vários filtros forem fornecidos, os dispositivos que corresponderem a qualquer um deles serão mostrados. 
- 
    váriasbooleano opcional Permita que o usuário selecione vários dispositivos. 
Direction
Direction, Recipient, RequestType e TransferType são mapeados para seus homônimos na especificação USB.
Enumeração
"in" 
 
"out" 
 
EndpointDescriptor
Propriedades
- 
    endereçonúmero Endereço do endpoint. 
- 
    direçãoDireção da transferência. 
- 
    extra_dataArrayBuffer Dados extras do descritor associados a este endpoint. 
- 
    maximumPacketSizenúmero Tamanho máximo do pacote. 
- 
    pollingIntervalnumber optional Intervalo de pesquisa (somente interrupção e isócrono). 
- 
    sincronizaçãoSynchronizationType opcional Modo de sincronização de transferência (somente isócrono). 
- 
    tipoTipo de transferência. 
- 
    utilizaçãoUsageType opcional Dica de uso do endpoint. 
EnumerateDevicesAndRequestAccessOptions
Propriedades
- 
    interfaceIdnumber optional O ID da interface para solicitar acesso. Disponível apenas no Chrome OS. Isso não afeta outras plataformas. 
- 
    productIdnúmero O ID do produto. 
- 
    vendorIdnúmero O ID do fornecedor do dispositivo. 
EnumerateDevicesOptions
Propriedades
- 
    filtrosDeviceFilter[] opcional Um dispositivo que corresponda a qualquer filtro será retornado. Uma lista de filtros vazia vai retornar todos os dispositivos em que o app tem permissão. 
- 
    productIdnumber optional DescontinuadoEquivale a definir DeviceFilter.productId.
- 
    vendorIdnumber optional DescontinuadoEquivale a definir DeviceFilter.vendorId.
GenericTransferInfo
Propriedades
- 
    dadosArrayBuffer opcional Os dados a serem transmitidos (obrigatório apenas para transferências de saída). 
- 
    direçãoA direção da transferência ( "in"ou"out").
- 
    endpointnúmero O endereço do endpoint de destino. A interface que contém esse endpoint precisa ser reivindicada. 
- 
    comprimentonumber optional O número máximo de bytes a serem recebidos (obrigatório apenas para transferências de entrada). 
- 
    timeoutnumber optional Chrome 43 ou mais recenteTempo limite da solicitação (em milissegundos). O valor padrão 0indica que não há tempo limite.
InterfaceDescriptor
Propriedades
- 
    alternateSettingnúmero O número da configuração alternativa da interface (o padrão é 0
- 
    descriçãostring opcional Descrição da interface. 
- 
    endpointsEndpoints disponíveis. 
- 
    extra_dataArrayBuffer Dados extras do descritor associados a essa interface. 
- 
    interfaceClassnúmero A classe de interface USB. 
- 
    interfaceNumbernúmero O número da interface. 
- 
    interfaceProtocolnúmero O protocolo de interface USB. 
- 
    interfaceSubclassnúmero A subclasse da interface USB. 
IsochronousTransferInfo
Propriedades
- 
    packetLengthnúmero O comprimento de cada pacote nesta transferência. 
- 
    pacotesnúmero O número total de pacotes nesta transferência. 
- 
    transferInfoParâmetros de transferência. O comprimento da transferência ou o buffer de dados especificado neste bloco de parâmetros é dividido ao longo dos limites packetLengthpara formar os pacotes individuais da transferência.
Recipient
Enumeração
"device" 
 
"interface" 
 
"endpoint" 
 
"other" 
 
RequestType
Enumeração
"padrão" 
 
"class" 
 
"vendor" 
 
"reserved" 
 
SynchronizationType
Para os modos de interrupção e isócrono, SynchronizationType e UsageType são mapeados para seus homônimos na especificação USB.
Enumeração
"assíncrono" 
 
"adaptive" 
 
"synchronous" 
 
TransferResultInfo
Propriedades
- 
    dadosArrayBuffer opcional Os dados retornados por uma transferência de entrada. undefinedpara transferências de saída.
- 
    resultCodenumber optional Um valor de 0indica que a transferência foi concluída. Outros valores indicam falha.
TransferType
Enumeração
"controle" 
 
"interrupt" 
 
"isochronous" 
 
"bulk" 
 
UsageType
Enumeração
"data" 
 
"feedback" 
 
"explicitFeedback" 
 
"periodic" 
 
"notification" 
 
Métodos
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Realiza uma transferência em massa no dispositivo especificado.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    transferInfoOs parâmetros de transferência. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(info: TransferResultInfo) => void - 
    informações
 
- 
    
Retorna
- 
            Promise<TransferResultInfo> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Reivindica uma interface em um dispositivo USB. Antes que os dados possam ser transferidos para uma interface ou endpoints associados, a interface precisa ser reivindicada. Apenas um identificador de conexão pode reivindicar uma interface por vez. Se a interface já estiver reivindicada, essa chamada vai falhar.
releaseInterface precisa ser chamado quando a interface não for mais necessária.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    interfaceNumbernúmero A interface a ser reivindicada. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:() => void 
Retorna
- 
            Promise<void> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
Fecha um identificador de conexão. Invocar operações em um identificador depois que ele é fechado é uma operação segura, mas não causa nenhuma ação.
Parâmetros
- 
    handleO ConnectionHandlea ser fechado.
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:() => void 
Retorna
- 
            Promise<void> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Executa uma transferência de controle no dispositivo especificado.
As transferências de controle se referem ao dispositivo, a uma interface ou a um endpoint. Para transferir para uma interface ou endpoint, é necessário reivindicar a interface.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    transferInfo
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(info: TransferResultInfo) => void - 
    informações
 
- 
    
Retorna
- 
            Promise<TransferResultInfo> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
Encontra dispositivos USB especificados pelo fornecedor, produto e (opcionalmente) IDs de interface e, se as permissões permitirem, os abre para uso.
Se a solicitação de acesso for rejeitada ou o dispositivo não puder ser aberto, um identificador de conexão não será criado nem retornado.
Chamar esse método é equivalente a chamar getDevices seguido de openDevice para cada dispositivo.
Parâmetros
- 
    As propriedades a serem pesquisadas nos dispositivos de destino. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(handles: ConnectionHandle[]) => void - 
    identificadores
 
- 
    
Retorna
- 
            Promise<ConnectionHandle[]> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Recebe o descritor da configuração selecionada no momento.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(config: ConfigDescriptor) => void - 
    config
 
- 
    
Retorna
- 
            Promise<ConfigDescriptor> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Retorna o conjunto completo de descritores de configuração do dispositivo.
Parâmetros
- 
    dispositivoO Devicede onde os descritores serão buscados.
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(configs: ConfigDescriptor[]) => void - 
    configs
 
- 
    
Retorna
- 
            Promise<ConfigDescriptor[]> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Enumera dispositivos USB conectados.
Parâmetros
Retorna
- 
            Promise<Device[]> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
Apresenta um seletor de dispositivos ao usuário e retorna os Devices selecionados. Se o usuário cancelar o seletor, os dispositivos vão ficar vazios. É necessário um gesto do usuário para que a caixa de diálogo seja exibida. Sem um gesto do usuário, o callback será executado como se o usuário tivesse cancelado.
Parâmetros
Retorna
- 
            Promise<Device[]> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Realiza uma transferência de interrupção no dispositivo especificado.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    transferInfoOs parâmetros de transferência. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(info: TransferResultInfo) => void - 
    informações
 
- 
    
Retorna
- 
            Promise<TransferResultInfo> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Realiza uma transferência isócrona no dispositivo específico.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    transferInfo
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(info: TransferResultInfo) => void - 
    informações
 
- 
    
Retorna
- 
            Promise<TransferResultInfo> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Lista todas as interfaces em um dispositivo USB.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(descriptors: InterfaceDescriptor[]) => void - 
    descritores
 
- 
    
Retorna
- 
            Promise<InterfaceDescriptor[]> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Abre um dispositivo USB retornado por getDevices.
Parâmetros
- 
    dispositivoO Devicea ser aberto.
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(handle: ConnectionHandle) => void - 
    handle
 
- 
    
Retorna
- 
            Promise<ConnectionHandle> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Libera uma interface reivindicada.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    interfaceNumbernúmero A interface a ser lançada. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:() => void 
Retorna
- 
            Promise<void> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
Essa função era específica do Chrome OS e falhava quando chamada em outras plataformas. Agora, essa operação é realizada implicitamente como parte de openDevice, e essa função vai retornar true em todas as plataformas.
Solicita acesso do broker de permissões a um dispositivo reivindicado pelo Chrome OS se a interface especificada no dispositivo não for reivindicada.
Parâmetros
- 
    dispositivoO Devicepara solicitar acesso.
- 
    interfaceIdnúmero A interface específica solicitada. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(success: boolean) => void - 
    sucessobooleano 
 
- 
    
Retorna
- 
            Promise<boolean> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
Tenta redefinir o dispositivo USB. Se a redefinição falhar, o identificador de conexão será fechado, e o dispositivo USB vai parecer desconectado e reconectado. Nesse caso, getDevices ou findDevices precisa ser chamado novamente para adquirir o dispositivo.
Parâmetros
- 
    handleUm identificador de conexão a ser redefinido. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(success: boolean) => void - 
    sucessobooleano 
 
- 
    
Retorna
- 
            Promise<boolean> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
Selecione uma configuração de dispositivo.
Essa função redefine o dispositivo selecionando uma das configurações disponíveis. Apenas valores de configuração maiores que 0 são válidos, mas alguns dispositivos com bugs têm uma configuração 0 funcional. Por isso, esse valor é permitido.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo. 
- 
    configurationValuenúmero 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:() => void 
Retorna
- 
            Promise<void> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
Seleciona uma configuração alternativa em uma interface reivindicada anteriormente.
Parâmetros
- 
    handleUma conexão aberta com o dispositivo em que essa interface foi reivindicada. 
- 
    interfaceNumbernúmero A interface a ser configurada. 
- 
    alternateSettingnúmero A configuração alternativa a ser definida. 
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:() => void 
Retorna
- 
            Promise<void> Chrome 116 ou mais recenteAs promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
Eventos
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Evento gerado quando um dispositivo é adicionado ao sistema. Os eventos só são transmitidos para apps e extensões que têm permissão para acessar o dispositivo. A permissão pode ter sido concedida no momento da instalação, quando o usuário aceitou uma permissão opcional (consulte permissions.request) ou por getUserSelectedDevices.
Parâmetros
- 
    callbackfunção O parâmetro callbacktem esta aparência:(device: Device) => void - 
    dispositivo
 
- 
    
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Evento gerado quando um dispositivo é removido do sistema. Consulte onDeviceAdded para saber quais eventos são entregues.
Parâmetros
- 
    callbackfunção O parâmetro callbacktem esta aparência:(device: Device) => void - 
    dispositivo
 
-