설명
chrome.usb
API를 사용하여 연결된 USB 기기와 상호작용합니다. 이 API는 앱 컨텍스트 내에서 USB 작업에 대한 액세스를 제공합니다. 이 API를 사용하면 앱이 하드웨어 기기용 드라이버로 작동할 수 있습니다. 이 API에서 생성된 오류는 runtime.lastError
를 설정하고 함수의 일반 콜백을 실행하여 보고됩니다. 이 경우 콜백의 일반 매개변수는 정의되지 않습니다.
권한
usb
유형
ConfigDescriptor
속성
-
운영중
부울
Chrome 47 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.활성 구성인가요?
-
configurationValue
숫자
구성 번호입니다.
-
설명
문자열(선택사항)
구성에 대한 설명입니다.
-
extra_data
배열 버퍼
이 구성과 관련된 추가 설명어 데이터입니다.
-
인터페이스
사용 가능한 인터페이스
-
maxPower
숫자
이 기기에 필요한 최대 전력 (mA)입니다.
-
remoteWakeup
부울
기기가 원격 wakeup을 지원합니다.
-
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
배열 버퍼
이 엔드포인트와 연결된 추가 설명어 데이터입니다.
-
maximumPacketSize
숫자
최대 패킷 크기.
-
pollingInterval
숫자 선택사항
폴링 간격 (중단 및 등시에만 해당)
-
동기화
SynchronizationType 선택사항
전송 동기화 모드 (등시 전용)
-
유형
트랜스퍼 유형입니다.
-
사용량
UsageType (선택사항)
엔드포인트 사용량 힌트입니다.
EnumerateDevicesAndRequestAccessOptions
속성
-
interfaceId
숫자 선택사항
액세스를 요청할 인터페이스 ID입니다. ChromeOS에서만 사용할 수 있습니다. 다른 플랫폼에는 영향을 미치지 않습니다.
-
productId
숫자
제품 ID입니다.
-
vendorId
숫자
기기 공급업체 ID입니다.
EnumerateDevicesOptions
속성
-
필터
DeviceFilter[] 선택사항
지정된 필터와 일치하는 기기가 반환됩니다. 빈 필터 목록은 앱에 권한이 있는 모든 기기를 반환합니다.
-
productId
숫자 선택사항
<ph type="x-smartling-placeholder"></ph> 지원 중단됨설정
DeviceFilter.productId
과 같습니다. -
vendorId
숫자 선택사항
<ph type="x-smartling-placeholder"></ph> 지원 중단됨설정
DeviceFilter.vendorId
과 같습니다.
GenericTransferInfo
속성
-
데이터
ArrayBuffer 선택사항
전송할 데이터입니다 (출력 전송에만 필요).
-
direction
환승 방향 (
"in"
또는"out"
)입니다. -
엔드포인트
숫자
대상 엔드포인트 주소입니다. 이 엔드포인트가 포함된 인터페이스의 소유권을 주장해야 합니다.
-
길이
숫자 선택사항
수신할 최대 바이트 수입니다 (입력 전송에만 필요).
-
제한 시간
숫자 선택사항
Chrome 43 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.요청 제한 시간 (밀리초)입니다. 기본값
0
는 제한 시간이 없음을 나타냅니다.
InterfaceDescriptor
속성
-
alternateSetting
숫자
인터페이스 대체 설정 번호 (기본값:
0
)입니다. -
설명
문자열(선택사항)
인터페이스에 대한 설명입니다.
-
endpoints
사용 가능한 엔드포인트
-
extra_data
배열 버퍼
이 인터페이스와 관련된 추가 설명어 데이터입니다.
-
interfaceClass
숫자
USB 인터페이스 클래스.
-
interfaceNumber
숫자
인터페이스 번호입니다.
-
interfaceProtocol
숫자
USB 인터페이스 프로토콜
-
interfaceSubclass
숫자
USB 인터페이스 서브클래스
IsochronousTransferInfo
속성
-
packetLength
숫자
이 전송에서 각 패킷의 길이입니다.
-
packets
숫자
이 전송의 총 패킷 수입니다.
-
transferInfo
전송 매개변수 이 매개변수 블록에 지정된 전송 길이 또는 데이터 버퍼는
packetLength
경계를 따라 분할되어 전송의 개별 패킷을 형성합니다.
Recipient
열거형
"기기"
"인터페이스"
"endpoint"
'기타'
RequestType
열거형
'표준'
"클래스"
'공급업체'
"reserved"
SynchronizationType
인터럽트 및 등시 모드의 경우 SynchronizationType 및 UsageType이 USB 사양 내에서 이름이 같은 항목에 매핑됩니다.
열거형
'비동기'
"적응형"
"동기식"
TransferResultInfo
속성
-
데이터
ArrayBuffer 선택사항
입력 전송에서 반환된 데이터입니다. 출력 전송:
undefined
-
resultCode
숫자 선택사항
값
0
는 전송이 성공했음을 나타냅니다. 다른 값은 실패를 나타냅니다.
TransferType
열거형
"컨트롤"
"인터럽트"
"등시"
'대량'
UsageType
열거형
"데이터"
'의견'
'explicitFeedback'
"periodic"
"알림"
메서드
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
지정된 기기에서 일괄 전송을 실행합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
transferInfo
전송 매개변수입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(info: TransferResultInfo) => void
반환 값
-
Promise<TransferResultInfo>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
USB 기기에서 인터페이스를 요청합니다. 데이터를 인터페이스 또는 연결된 엔드포인트로 전송하기 전에 해당 인터페이스의 소유권을 주장해야 합니다. 한 번에 하나의 연결 핸들만 인터페이스의 소유권을 주장할 수 있습니다. 인터페이스가 이미 소유권이 주장된 경우 이 호출은 실패합니다.
인터페이스가 더 이상 필요하지 않으면 releaseInterface
를 호출해야 합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
interfaceNumber
숫자
소유권을 주장할 인터페이스입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
연결 핸들을 닫습니다. 핸들이 닫힌 후에 핸들에 작업을 호출하는 것은 안전한 작업이지만 아무 작업도 실행하지 않습니다.
매개변수
-
닫을
ConnectionHandle
입니다. -
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
지정된 기기에서 제어 전송을 실행합니다.
제어 전송은 장치, 인터페이스 또는 엔드포인트를 나타냅니다. 인터페이스 또는 엔드포인트로 전송하려면 인터페이스를 신청해야 합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
transferInfo
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(info: TransferResultInfo) => void
반환 값
-
Promise<TransferResultInfo>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
공급업체, 제품 및 인터페이스 ID (선택사항)에서 지정한 USB 기기를 찾고, 이러한 기기가 사용을 위해 열 수 있도록 허용하는지 확인합니다.
액세스 요청이 거부되거나 기기를 열지 못하면 연결 핸들이 생성되거나 반환되지 않습니다.
이 메서드를 호출하는 것은 각 기기에서 getDevices
다음에 openDevice
를 호출하는 것과 같습니다.
매개변수
-
대상 기기에서 검색할 속성입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(handles: ConnectionHandle[]) => void
-
핸들
-
반환 값
-
Promise<ConnectionHandle[]>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
현재 선택된 구성의 구성 설명자를 가져옵니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(config: ConfigDescriptor) => void
-
config
-
반환 값
-
Promise<ConfigDescriptor>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
전체 기기 구성 설명자를 반환합니다.
매개변수
-
기기
설명자를 가져올
Device
입니다. -
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(configs: ConfigDescriptor[]) => void
-
configs
-
반환 값
-
Promise<ConfigDescriptor[]>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
연결된 USB 기기를 열거합니다.
매개변수
반환 값
-
프로미스<기기[]>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
사용자에게 기기 선택 도구를 표시하고 선택된 Device
를 반환합니다. 사용자가 취소하면 선택기 기기가 비어 있게 됩니다. 대화상자를 표시하려면 사용자 동작이 필요합니다. 사용자 동작이 없으면 사용자가 취소한 것처럼 콜백이 실행됩니다.
매개변수
반환 값
-
프로미스<기기[]>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
지정된 기기에서 인터럽트 전송을 실행합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
transferInfo
전송 매개변수입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(info: TransferResultInfo) => void
반환 값
-
Promise<TransferResultInfo>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
특정 기기에서 등시 전송을 수행합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
transferInfo
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(info: TransferResultInfo) => void
반환 값
-
Promise<TransferResultInfo>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
USB 기기의 모든 인터페이스를 나열합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(descriptors: InterfaceDescriptor[]) => void
-
설명어
-
반환 값
-
Promise<InterfaceDescriptor[]>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
getDevices
에서 반환한 USB 기기를 엽니다.
매개변수
-
기기
열려는
Device
입니다. -
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(handle: ConnectionHandle) => void
반환 값
-
Promise<ConnectionHandle>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
소유권이 주장된 인터페이스를 해제합니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
interfaceNumber
숫자
출시할 인터페이스입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
이 기능은 ChromeOS 전용이므로 다른 플랫폼에서 호출할 수 없습니다. 이 작업은 이제 openDevice
의 일부로 암시적으로 실행되며 이 함수는 모든 플랫폼에서 true
을 반환합니다.
기기에 지정된 인터페이스의 소유권이 주장되지 않은 경우, 권한 브로커에서 Chrome OS가 소유권을 주장한 기기에 대한 액세스를 요청합니다.
매개변수
-
기기
액세스를 요청할
Device
입니다. -
interfaceId
숫자
요청된 특정 인터페이스.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
부울
-
반환 값
-
Promise<boolean>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
USB 기기를 재설정하려고 시도합니다. 재설정에 실패하면 지정된 연결 핸들이 닫히고 USB 기기가 연결 해제된 것으로 표시되었다가 다시 연결됩니다. 이 경우 기기를 획득하려면 getDevices
또는 findDevices
를 다시 호출해야 합니다.
매개변수
-
재설정할 연결 핸들.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
부울
-
반환 값
-
Promise<boolean>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
기기 구성을 선택합니다.
이 함수는 기기의 사용 가능한 구성 중 하나를 선택하여 기기를 효과적으로 재설정합니다. 0
보다 큰 구성 값만 유효하지만 일부 버그가 있는 기기에서는 0
구성이 작동하므로 이 값이 허용됩니다.
매개변수
-
기기에 열려 있는 연결입니다.
-
configurationValue
숫자
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
이전에 소유권을 주장한 인터페이스에서 대체 설정을 선택합니다.
매개변수
-
이 인터페이스가 요구된 기기의 개방형 연결입니다.
-
interfaceNumber
숫자
구성할 인터페이스입니다.
-
alternateSetting
숫자
구성할 대체 설정입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
이벤트
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
기기가 시스템에 추가될 때 생성되는 이벤트입니다. 이벤트는 기기 액세스 권한이 있는 앱과 확장 프로그램으로만 브로드캐스트됩니다. 권한은 설치 시, 사용자가 선택적 권한 (permissions.request
참고)을 수락했을 때 또는 getUserSelectedDevices
를 통해 부여되었을 수 있습니다.
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
시스템에서 기기가 삭제될 때 생성되는 이벤트입니다. 어떤 이벤트가 전송되는지는 onDeviceAdded
를 참고하세요.