chrome.usb

설명

chrome.usb API를 사용하여 연결된 USB 기기와 상호작용합니다. 이 API는 앱 컨텍스트 내에서 USB 작업에 액세스할 수 있도록 합니다. 이 API를 사용하면 앱이 하드웨어 기기의 드라이버로 작동할 수 있습니다. 이 API에서 생성된 오류는 runtime.lastError를 설정하고 함수의 일반 콜백을 실행하여 보고됩니다. 이 경우 콜백의 일반 매개변수가 정의되지 않습니다.

권한

usb

유형

ConfigDescriptor

속성

  • 운영중

    부울

    Chrome 47 이상

    활성 구성인가요?

  • configurationValue

    숫자

    구성 번호입니다.

  • 설명

    문자열 선택사항

    구성 설명

  • extra_data

    ArrayBuffer

    이 구성과 연결된 추가 설명자 데이터입니다.

  • 인터페이스

    사용 가능한 인터페이스

  • maxPower

    숫자

    이 기기에 필요한 최대 전력 (밀리암페어, mA)입니다.

  • remoteWakeup

    부울

    기기가 원격 웨이크업을 지원합니다.

  • selfPowered

    부울

    기기가 자체 전원을 사용합니다.

ConnectionHandle

속성

  • 핸들

    숫자

    USB 기기와의 이 연결과 연결된 모든 소유권 주장 인터페이스 및 대기 중인 전송을 나타내는 불투명 핸들입니다. 기기가 열릴 때마다 새 핸들이 생성됩니다. 연결 핸들은 Device.device와 다릅니다.

  • productId

    숫자

    제품 ID입니다.

  • vendorId

    숫자

    기기 공급업체 ID입니다.

ControlTransferInfo

속성

  • 데이터

    ArrayBuffer 선택사항

    전송할 데이터입니다 (출력 전송에서만 필요).

  • direction

    전송 방향 ("in" 또는 "out")입니다.

  • 색인

    숫자

    wIndex 필드: Ibid를 참고하세요.

  • 길이

    번호 선택사항

    수신할 최대 바이트 수입니다 (입력 전송에서만 필요).

  • 받는 사람

    전송 대상입니다. index에서 제공한 타겟은 "interface" 또는 "endpoint"인 경우 소유권을 주장해야 합니다.

  • 요청

    숫자

    bRequest 필드: 범용 직렬 버스 사양 버전 1.1 § 9.3을 참고하세요.

  • requestType

    요청 유형입니다.

  • 제한 시간

    번호 선택사항

    Chrome 43 이상

    요청 제한 시간 (밀리초)입니다. 기본값 0은 시간 제한이 없음을 나타냅니다.

  • 숫자

    wValue 필드: Ibid를 참고하세요.

Device

속성

  • 기기

    숫자

    USB 기기의 불투명 ID입니다. 기기의 전원 코드가 분리될 때까지 변경되지 않습니다.

  • manufacturerName

    문자열

    Chrome 46 이상

    기기에서 읽은 iManufacturer 문자열(있는 경우)

  • productId

    숫자

    제품 ID입니다.

  • productName

    문자열

    Chrome 46 이상

    기기에서 읽은 iProduct 문자열(있는 경우)입니다.

  • serialNumber

    문자열

    Chrome 46 이상

    기기에서 읽은 iSerialNumber 문자열(제공되는 경우)입니다.

  • vendorId

    숫자

    기기 공급업체 ID입니다.

  • version

    숫자

    Chrome 51 이상

    기기 버전 (bcdDevice 필드)입니다.

DeviceFilter

속성

  • interfaceClass

    번호 선택사항

    USB 인터페이스 클래스, 기기의 모든 인터페이스와 일치합니다.

  • interfaceProtocol

    번호 선택사항

    USB 인터페이스 프로토콜입니다. 인터페이스 하위 클래스가 일치하는 경우에만 확인됩니다.

  • interfaceSubclass

    번호 선택사항

    USB 인터페이스 하위 클래스입니다. 인터페이스 클래스가 일치하는 경우에만 선택됩니다.

  • productId

    번호 선택사항

    기기 제품 ID입니다. 공급업체 ID가 일치하는 경우에만 확인됩니다.

  • vendorId

    번호 선택사항

    기기 공급업체 ID입니다.

DevicePromptOptions

속성

  • 필터

    DeviceFilter[] 선택사항

    사용자에게 표시되는 기기 목록을 필터링합니다. 여러 필터를 제공하는 경우 필터 중 하나와 일치하는 기기가 표시됩니다.

  • 여러 개

    불리언 선택사항

    사용자가 여러 기기를 선택하도록 허용합니다.

Direction

Direction, Recipient, RequestType, TransferType은 모두 USB 사양 내의 동명 항목에 매핑됩니다.

열거형

"in"

'out'

EndpointDescriptor

속성

  • 주소

    숫자

    엔드포인트 주소입니다.

  • direction

    전송 방향

  • extra_data

    ArrayBuffer

    이 엔드포인트와 연결된 추가 설명자 데이터입니다.

  • maximumPacketSize

    숫자

    최대 패킷 크기입니다.

  • pollingInterval

    번호 선택사항

    폴링 간격 (인터럽트 및 동기식만 해당)

  • 동기화

    SynchronizationType 선택사항

    전송 동기화 모드 (등시 전송만 해당)

  • 유형

    전송 유형입니다.

  • 사용량

    UsageType 선택사항

    엔드포인트 사용 힌트

EnumerateDevicesAndRequestAccessOptions

속성

  • interfaceId

    번호 선택사항

    액세스를 요청할 인터페이스 ID입니다. ChromeOS에서만 사용할 수 있습니다. 다른 플랫폼에는 영향을 미치지 않습니다.

  • productId

    숫자

    제품 ID입니다.

  • vendorId

    숫자

    기기 공급업체 ID입니다.

EnumerateDevicesOptions

속성

  • 필터

    DeviceFilter[] 선택사항

    지정된 필터와 일치하는 기기가 반환됩니다. 필터 목록이 비어 있으면 앱에 권한이 있는 모든 기기가 반환됩니다.

  • productId

    번호 선택사항

    지원 중단됨

    DeviceFilter.productId를 설정하는 것과 같습니다.

  • vendorId

    번호 선택사항

    지원 중단됨

    DeviceFilter.vendorId를 설정하는 것과 같습니다.

GenericTransferInfo

속성

  • 데이터

    ArrayBuffer 선택사항

    전송할 데이터입니다 (출력 전송에서만 필요).

  • direction

    전송 방향 ("in" 또는 "out")입니다.

  • 엔드포인트

    숫자

    대상 엔드포인트 주소입니다. 이 엔드포인트가 포함된 인터페이스를 소유해야 합니다.

  • 길이

    번호 선택사항

    수신할 최대 바이트 수입니다 (입력 전송에서만 필요).

  • 제한 시간

    번호 선택사항

    Chrome 43 이상

    요청 제한 시간 (밀리초)입니다. 기본값 0은 시간 제한이 없음을 나타냅니다.

InterfaceDescriptor

속성

  • alternateSetting

    숫자

    인터페이스 대체 설정 번호입니다 (기본값: 0).

  • 설명

    문자열 선택사항

    인터페이스에 대한 설명입니다.

  • endpoints

    사용 가능한 엔드포인트

  • extra_data

    ArrayBuffer

    이 인터페이스와 연결된 추가 설명자 데이터입니다.

  • interfaceClass

    숫자

    USB 인터페이스 클래스입니다.

  • interfaceNumber

    숫자

    인터페이스 번호입니다.

  • interfaceProtocol

    숫자

    USB 인터페이스 프로토콜입니다.

  • interfaceSubclass

    숫자

    USB 인터페이스 서브클래스입니다.

IsochronousTransferInfo

속성

  • packetLength

    숫자

    이 전송의 각 패킷 길이입니다.

  • packets

    숫자

    이 전송의 총 패킷 수입니다.

  • transferInfo

    전송 매개변수 이 매개변수 블록에 지정된 전송 길이 또는 데이터 버퍼는 packetLength 경계를 따라 분할되어 전송의 개별 패킷을 형성합니다.

Recipient

열거형

'device'

'interface'

'endpoint'

'other'

RequestType

열거형

'표준'

"class"

'vendor'

'예약됨'

SynchronizationType

인터럽트 및 동기 모드의 경우 SynchronizationType 및 UsageType은 USB 사양 내의 동명이 개체에 매핑됩니다.

열거형

'비동기'

'적응형'

'동기식'

TransferResultInfo

속성

  • 데이터

    ArrayBuffer 선택사항

    입력 전송에서 반환된 데이터입니다. undefined(출력 전송)

  • resultCode

    번호 선택사항

    값이 0이면 전송이 성공했음을 나타냅니다. 다른 값은 실패를 나타냅니다.

TransferType

열거형

'control'

'interrupt'

"isochronous"

'대량'

UsageType

열거형

'data'

'의견'

"explicitFeedback"

'주기적'

'알림'

메서드

bulkTransfer()

Promise
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

지정된 기기에서 일괄 전송을 실행합니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

claimInterface()

Promise
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

USB 기기에서 인터페이스를 소유합니다. 데이터를 인터페이스 또는 연결된 엔드포인트로 전송하려면 먼저 인터페이스의 소유권을 주장해야 합니다. 특정 시점에 하나의 연결 핸들만 인터페이스를 소유할 수 있습니다. 인터페이스가 이미 소유된 경우 이 호출은 실패합니다.

인터페이스가 더 이상 필요하지 않을 때 releaseInterface를 호출해야 합니다.

매개변수

  • 기기에 대한 연결이 열려 있습니다.

  • interfaceNumber

    숫자

    소유권을 주장할 인터페이스입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

closeDevice()

Promise
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

연결 핸들을 닫습니다. 핸들이 닫힌 후에 핸들에서 작업을 호출하는 것은 안전한 작업이지만 아무런 조치도 취하지 않습니다.

매개변수

반환 값

  • Promise<void>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

controlTransfer()

Promise
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

지정된 기기에서 제어 전송을 실행합니다.

제어 전송은 기기, 인터페이스 또는 엔드포인트를 나타냅니다. 인터페이스 또는 엔드포인트로의 전송을 위해서는 인터페이스를 소유해야 합니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

findDevices()

Promise
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

공급업체, 제품, 인터페이스 ID (선택사항)로 지정된 USB 기기를 찾고 권한이 허용하는 경우 기기를 열어 사용합니다.

액세스 요청이 거부되거나 기기를 열 수 없는 경우 연결 핸들이 생성되거나 반환되지 않습니다.

이 메서드를 호출하는 것은 각 기기에서 getDevices 다음에 openDevice를 호출하는 것과 같습니다.

매개변수

반환 값

  • Promise<ConnectionHandle[]>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getConfiguration()

Promise
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

현재 선택한 구성의 구성 설명자를 가져옵니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getConfigurations()

Promise Chrome 47 이상
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

전체 기기 구성 설명자를 반환합니다.

매개변수

반환 값

  • Promise<ConfigDescriptor[]>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getDevices()

Promise
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

연결된 USB 기기를 열거합니다.

매개변수

  • 타겟 기기에서 검색할 속성입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (devices: Device[]) => void

반환 값

  • Promise<Device[]>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getUserSelectedDevices()

Promise
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

사용자에게 기기 선택 도구를 표시하고 선택한 Device를 반환합니다. 사용자가 선택 도구를 취소하면 기기가 비워집니다. 대화상자를 표시하려면 사용자 동작이 필요합니다. 사용자 동작이 없으면 콜백이 사용자가 취소한 것처럼 실행됩니다.

매개변수

  • 기기 선택 도구 대화상자의 구성

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (devices: Device[]) => void

반환 값

  • Promise<Device[]>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

interruptTransfer()

Promise
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

지정된 기기에서 인터럽트 전송을 실행합니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

isochronousTransfer()

Promise
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

특정 기기에서 동기 전송을 실행합니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

listInterfaces()

Promise
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

USB 기기의 모든 인터페이스를 나열합니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

openDevice()

Promise
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

getDevices에서 반환된 USB 기기를 엽니다.

매개변수

반환 값

  • Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

releaseInterface()

Promise
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

소유권 주장이 제기된 인터페이스를 해제합니다.

매개변수

  • 기기에 연결된 열린 연결입니다.

  • interfaceNumber

    숫자

    출시할 인터페이스입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

requestAccess()

Promise 지원 중단됨
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

이 함수는 Chrome OS 전용이며 다른 플랫폼에서 호출하면 실패합니다. 이제 이 작업은 openDevice의 일부로 암시적으로 실행되며 이 함수는 모든 플랫폼에서 true를 반환합니다.

기기의 지정된 인터페이스가 소유권 주장이 제기되지 않은 경우 Chrome OS에서 소유권을 주장한 기기에 대한 액세스를 권한 브로커에 요청합니다.

매개변수

  • 기기

    액세스 권한을 요청할 Device입니다.

  • interfaceId

    숫자

    요청된 특정 인터페이스입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (success: boolean) => void

    • 성공

      부울

반환 값

  • Promise<boolean>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

resetDevice()

Promise
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

USB 기기를 재설정하려고 시도합니다. 재설정이 실패하면 지정된 연결 핸들이 닫히고 USB 기기가 연결 해제되었다가 다시 연결된 것처럼 보입니다. 이 경우 기기를 가져오려면 getDevices 또는 findDevices를 다시 호출해야 합니다.

매개변수

  • 재설정할 연결 핸들입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (success: boolean) => void

    • 성공

      부울

반환 값

  • Promise<boolean>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

setConfiguration()

Promise
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

기기 구성을 선택합니다.

이 함수는 기기의 사용 가능한 구성 중 하나를 선택하여 기기를 효과적으로 재설정합니다. 0보다 큰 구성 값만 유효하지만 버그가 있는 일부 기기에는 작동하는 구성 0가 있으므로 이 값은 허용됩니다.

매개변수

  • 기기에 연결된 열린 연결입니다.

  • configurationValue

    숫자

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

setInterfaceAlternateSetting()

Promise
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

이전에 소유권이 주장된 인터페이스에서 대체 설정을 선택합니다.

매개변수

  • 이 인터페이스의 소유권이 주장된 기기에 대한 열린 연결입니다.

  • interfaceNumber

    숫자

    구성할 인터페이스입니다.

  • alternateSetting

    숫자

    구성할 대체 설정입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 116 이상

    Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

이벤트

onDeviceAdded

chrome.usb.onDeviceAdded.addListener(
  callback: function,
)

기기가 시스템에 추가될 때 생성되는 이벤트입니다. 이벤트는 기기에 액세스할 권한이 있는 앱 및 확장 프로그램에만 브로드캐스트됩니다. 권한은 사용자가 선택적 권한을 수락했을 때 (permissions.request 참고) 또는 getUserSelectedDevices를 통해 설치 시 부여되었을 수 있습니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (device: Device) => void

onDeviceRemoved

chrome.usb.onDeviceRemoved.addListener(
  callback: function,
)

기기가 시스템에서 삭제될 때 생성되는 이벤트입니다. 전송되는 이벤트는 onDeviceAdded를 참고하세요.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (device: Device) => void