Descrição
Use a API chrome.usb
para interagir com dispositivos USB conectados. Essa API fornece acesso a operações USB no contexto de um app. Com essa API, os apps podem funcionar como drivers para dispositivos de hardware. Os erros gerados por essa API são informados ao definir runtime.lastError
e executar o callback regular da função. Nesse caso, os parâmetros regulares do callback serão indefinidos.
Permissões
usb
Tipos
ConfigDescriptor
Propriedades
-
ativo
booleano
Chrome 47 ou superiorEsta é a configuração ativa?
-
configurationValue
number
O número da configuração.
-
descrição
string opcional
Descrição da configuração.
-
extra_data
Buffer de matriz
Dados extras do descritor associados a esta configuração.
-
interfaces
Interfaces disponíveis.
-
maxPower
number
Potência máxima necessária para este dispositivo em milissegundos (mA).
-
remoteWakeup
booleano
O dispositivo oferece suporte à ativação remota.
-
selfPowered
booleano
O dispositivo é independente.
ConnectionHandle
Propriedades
-
handle
number
Uma alça opaca que representa essa conexão com o dispositivo USB e todas as interfaces reivindicadas associadas e transferências pendentes. Um novo identificador é criado sempre que o dispositivo é aberto. O identificador de conexão é diferente do
Device.device
. -
productId
number
O ID do produto.
-
vendorId
number
O ID do fornecedor do dispositivo.
ControlTransferInfo
Propriedades
-
dados
ArrayBuffer opcional
Os dados a serem transmitidos (obrigatórios apenas para transferências de saída).
-
direção
A direção de baldeação (
"in"
ou"out"
). -
index
number
Para o campo
wIndex
, consulte Ibid. -
comprimento
número opcional
O número máximo de bytes a serem recebidos (obrigatório apenas para transferências de entrada).
-
destinatário
O destino da transferência. O destino fornecido por
index
precisará ser reivindicado se for"interface"
ou"endpoint"
. -
solicitação
number
O campo
bRequest
, consulte Revisão 1.1 da especificação de barramento serial universal § 9.3. -
requestType
O tipo de solicitação.
-
timeout
número opcional
Chrome 43 ou superiorTempo limite da solicitação (em milissegundos). O valor padrão
0
indica que não há tempo limite. -
valor
number
Para o campo
wValue
, consulte Ibid.
Device
Propriedades
-
dispositivo
number
Um código opaco para o dispositivo USB. Ela permanece inalterada até que o dispositivo seja desconectado.
-
manufacturerName
string
Chrome 46 ou superiorA string do iManufacturer lida no dispositivo, se disponível.
-
productId
number
O ID do produto.
-
productName
string
Chrome 46 ou superiorA string do iProduct lida no dispositivo, se disponível.
-
serialNumber
string
Chrome 46 ou superiorA string iSerialNumber lida no dispositivo, se disponível.
-
vendorId
number
O ID do fornecedor do dispositivo.
-
version
number
Chrome 51 ou superiorA versão do dispositivo (campo bcdDevice).
DeviceFilter
Propriedades
-
interfaceClass
número opcional
Classe de interface USB, corresponde a qualquer interface no dispositivo.
-
interfaceProtocol
número opcional
Protocolo de interface USB, marcado apenas se a subclasse de interface corresponder.
-
interfaceSubclass
número opcional
Subclasse de interface USB, marcada apenas se a classe de interface corresponder.
-
productId
número opcional
ID do produto do dispositivo, marcado apenas se o ID do fornecedor for correspondente.
-
vendorId
número opcional
ID do fornecedor do dispositivo.
DevicePromptOptions
Propriedades
-
filtros
DeviceFilter[] opcional
Filtre a lista de dispositivos apresentada ao usuário. Se vários filtros forem fornecidos, os dispositivos que corresponderem a qualquer filtro serão exibidos.
-
várias
booleano opcional
Permita que o usuário selecione vários dispositivos.
Direction
Directions, Recipient, RequestType e TransferType são mapeados para os próprios nomes na especificação USB.
Enumeração
"em"
"out"
EndpointDescriptor
Propriedades
-
endereço
number
Endereço do endpoint.
-
direção
Direção da baldeação.
-
extra_data
Buffer de matriz
Dados extras do descritor associados a este endpoint.
-
maximumPacketSize
number
Tamanho máximo do pacote.
-
pollingInterval
número opcional
Intervalo de pesquisa (somente interrupção e isócrona).
-
sincronização
SynchronizationType opcional
Modo de sincronização de transferência (somente isócrono).
-
tipo
Tipo de transferência.
-
utilização
UsageType opcional
Dica de uso de endpoint.
EnumerateDevicesAndRequestAccessOptions
Propriedades
-
interfaceId
número opcional
O ID da interface à qual solicitar acesso. Disponível apenas no ChromeOS. Ela não afeta outras plataformas.
-
productId
number
O ID do produto.
-
vendorId
number
O ID do fornecedor do dispositivo.
EnumerateDevicesOptions
Propriedades
-
filtros
DeviceFilter[] opcional
Um dispositivo correspondente a qualquer filtro será retornado. Uma lista de filtros vazia retornará todos os dispositivos para os quais o app tem permissão.
-
productId
número opcional
DescontinuadoÉ equivalente à configuração de
DeviceFilter.productId
. -
vendorId
número opcional
DescontinuadoÉ equivalente à configuração de
DeviceFilter.vendorId
.
GenericTransferInfo
Propriedades
-
dados
ArrayBuffer opcional
Os dados a serem transmitidos (obrigatórios apenas para transferências de saída).
-
direção
A direção de baldeação (
"in"
ou"out"
). -
endpoint
number
O endereço do endpoint de destino. A interface que contém esse endpoint precisa ser reivindicada.
-
comprimento
número opcional
O número máximo de bytes a serem recebidos (obrigatório apenas para transferências de entrada).
-
timeout
número opcional
Chrome 43 ou superiorTempo limite da solicitação (em milissegundos). O valor padrão
0
indica que não há tempo limite.
InterfaceDescriptor
Propriedades
-
alternateSetting
number
O número da configuração alternativa da interface (o padrão é
0
) -
descrição
string opcional
Descrição da interface.
-
endpoints
Endpoints disponíveis.
-
extra_data
Buffer de matriz
Dados extras do descritor associados a essa interface.
-
interfaceClass
number
A classe de interface USB.
-
interfaceNumber
number
O número da interface.
-
interfaceProtocol
number
O protocolo de interface USB.
-
interfaceSubclass
number
A subclasse de interface USB.
IsochronousTransferInfo
Propriedades
-
packetLength
number
O tamanho de cada pacote nesta transferência.
-
pacotes
number
O número total de pacotes nesta transferência.
-
transferInfo
Parâmetros de transferência. O comprimento da transferência ou o buffer de dados especificado nesse bloco de parâmetros é dividido ao longo de limites de
packetLength
para formar os pacotes individuais da transferência.
Recipient
Enumeração
"dispositivo"
"interface"
"endpoint"
"outro"
RequestType
Enumeração
"padrão"
"classe"
"fornecedor"
"reservado"
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íncrona"
"adaptável"
"síncrona"
TransferResultInfo
Propriedades
-
dados
ArrayBuffer opcional
Os dados retornados por uma transferência de entrada.
undefined
para transferências de saída. -
resultCode
número opcional
O valor
0
indica que a transferência foi bem-sucedida. Outros valores indicam falha.
TransferType
Enumeração
"controle"
"interromper"
"isócrona"
"em massa"
UsageType
Enumeração
"dados"
"feedback"
"explicitFeedback"
"periódico"
"notificação"
Métodos
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Executa uma transferência em massa no dispositivo especificado.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
transferInfo
Os parâmetros de transferência.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(info: TransferResultInfo) => void
-
informações
-
Retorna
-
Promise<TransferResultInfo>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Reivindica uma interface em um dispositivo USB. Antes que os dados possam ser transferidos para uma interface ou endpoints associados, a interface deve ser reivindicada. Somente um identificador de conexão pode reivindicar uma interface por vez. Se a interface já tiver sido reivindicada, a chamada falhará.
releaseInterface
precisa ser chamado quando a interface não é mais necessária.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
interfaceNumber
number
A interface a ser reivindicada.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Fecha um identificador de conexão. Invocar operações em um identificador depois do fechamento é uma operação segura, mas não faz com que nenhuma ação seja realizada.
Parâmetros
-
handle
O
ConnectionHandle
para fechar. -
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
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. As transferências para uma interface ou um endpoint exigem que a interface seja reivindicada.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
transferInfo
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(info: TransferResultInfo) => void
-
informações
-
Retorna
-
Promise<TransferResultInfo>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Encontra dispositivos USB especificados pelo fornecedor, produto e (opcionalmente) IDs da interface e se as permissões permitem abri-los para uso.
Se a solicitação de acesso for rejeitada ou o dispositivo não for 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.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(handles: ConnectionHandle[]) => void
-
alças
-
Retorna
-
Promise<ConnectionHandle[]>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Recebe o descritor da configuração selecionada no momento.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(config: ConfigDescriptor) => void
-
config
-
Retorna
-
Promise<ConfigDescriptor>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Retorna o conjunto completo de descritores de configuração do dispositivo.
Parâmetros
-
dispositivo
O
Device
para buscar descritores. -
callback
função opcional
O parâmetro
callback
tem esta aparência:(configs: ConfigDescriptor[]) => void
-
configs
-
Retorna
-
Promise<ConfigDescriptor[]>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Enumera os dispositivos USB conectados.
Parâmetros
-
opções
As propriedades a serem pesquisadas nos dispositivos de destino.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(devices: Device[]) => void
-
dispositivo
-
Retorna
-
Promessa<Dispositivo[]>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Apresenta um seletor de dispositivo ao usuário e retorna as Device
s selecionadas. Se o usuário cancelar, os dispositivos do seletor estarão 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
-
opções
Configuração da caixa de diálogo do seletor de dispositivo.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(devices: Device[]) => void
-
dispositivo
-
Retorna
-
Promessa<Dispositivo[]>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Interrompe a transferência no dispositivo especificado.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
transferInfo
Os parâmetros de transferência.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(info: TransferResultInfo) => void
-
informações
-
Retorna
-
Promise<TransferResultInfo>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Executa uma transferência isócrona no dispositivo específico.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
transferInfo
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(info: TransferResultInfo) => void
-
informações
-
Retorna
-
Promise<TransferResultInfo>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Lista todas as interfaces em um dispositivo USB.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(descriptors: InterfaceDescriptor[]) => void
-
descritores
-
Retorna
-
Promise<InterfaceDescriptor[]>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Abre um dispositivo USB retornado por getDevices
.
Parâmetros
-
dispositivo
O
Device
a ser aberto. -
callback
função opcional
O parâmetro
callback
tem esta aparência:(handle: ConnectionHandle) => void
-
handle
-
Retorna
-
Promise<ConnectionHandle>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Lança uma interface reivindicada.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
interfaceNumber
number
A interface a ser lançada.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Essa função era específica para o Chrome OS e chamá-la em outras plataformas falharia. Essa operação agora é executada implicitamente como parte de openDevice
, e essa função retorna true
em todas as plataformas.
Solicita acesso do agente de permissões a um dispositivo reivindicado pelo Chrome OS se a interface fornecida no dispositivo não for reivindicada.
Parâmetros
-
dispositivo
O
Device
que vai receber o acesso. -
interfaceId
number
A interface específica solicitada.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(success: boolean) => void
-
sucesso
booleano
-
Retorna
-
Promise<boolean>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Tenta redefinir o dispositivo USB. Se a redefinição falhar, o identificador de conexão fornecido será fechado e o dispositivo USB parecerá estar desconectado e reconectado. Nesse caso, getDevices
ou findDevices
precisa ser chamado novamente para adquirir o dispositivo.
Parâmetros
-
handle
Um identificador de conexão para redefinir.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(success: boolean) => void
-
sucesso
booleano
-
Retorna
-
Promise<boolean>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Selecione uma configuração de dispositivo.
Essa função redefine o dispositivo efetivamente selecionando uma das configurações disponíveis do dispositivo. Somente valores de configuração maiores que 0
são válidos. No entanto, alguns dispositivos com bugs têm uma configuração 0
em funcionamento. Por isso, esse valor é permitido.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo.
-
configurationValue
number
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Seleciona uma configuração alternativa em uma interface reivindicada.
Parâmetros
-
handle
Uma conexão aberta com o dispositivo em que a interface foi reivindicada.
-
interfaceNumber
number
A interface a ser configurada.
-
alternateSetting
number
A configuração alternativa a ser definida.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 116 ou versões mais recentesAs promessas só têm suporte no Manifesto 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ão transmitidos somente 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 pelo getUserSelectedDevices
.
Parâmetros
-
callback
função
O parâmetro
callback
tem 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
-
callback
função
O parâmetro
callback
tem esta aparência:(device: Device) => void
-
dispositivo
-