日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AAP HID

發布時間:2023/12/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AAP HID 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?在Android手機和車機連接投屏時,會用到AOA協議(Android Open Accessory Protocol)進行主從切換, 其中反控可以用該協議中HID實現,這個部分稱為AAP HID(Android Accessory Protocol Human Interface Device),我們來看看具體是怎么工作的。

先看谷歌官網的介紹,源地址:Android Open Accessory Protocol 2.0,開始搬運。

與AOA1.0相比,在最新的2.0版本中增加的功能:

  • 從Android設備到外設的音頻輸出
  • 外部設備可以作為Android設備的一個或多個HID設備

什么是外設?

  • Windows電腦是主設備/Host,通過USB連接的鼠盤、鍵盤、U盤,游戲控制手柄和打印機等是外部設備。
  • 車機里中控系統是主設備,但是和手機連接投屏時進行了主從切換,所以今天聊的HID場景里,手機是主設備,車機反而成了外部設備,結合AAP HID的功能,車機的反控行為和鼠標類似。

什么是HID設備?

  • 顧名思義,與電腦連接并實現人機交互功能的設備,如鼠標鍵盤等。

AOA 2.0中的HID支持只是對標準HID事件的一個代理。該實現對事件的內容或類型沒有任何假設,只是將其傳遞到輸入系統Input System,因此AOA 2.0外設可以充當任何HID設備(鼠標、鍵盤、游戲控制器等)。它可以用于簡單的東西,比如媒體底座上的播放/暫停按鈕,或者復雜的鼠標和全標準鍵盤(QWERTY)的對接站。

AOA 2.0協議增加了四個新的USB控制請求,允許外設作為一個或多個HID輸入設備連接到安卓設備。由于HID支持完全通過endpoint0的控制請求來完成,因此不需要新的USB接口來提供這種支持。控制請求如下:

  • ACCESSORY_REGISTER_HID?在安卓設備上注冊了一個新的HID設備。該外設提供了一個ID用于識別其他三個請求,在USB斷開連接或外設發送ACCESSORY_UNREGISTER_HID注銷HID設備之前,此ID一直有效
  • ACCESSORY_UNREGISTER_HID?注銷以注冊的HID設備
  • ACCESSORY_SET_HID_REPORT_DESC?向Android設備發送一個HID設備的報告描述符。此請求用于描述HID設備的功能,并且必須在向Android設備報告任何HID事件之前發送。如果報表描述符大于endpoint0的最大數據值,則會發送多個ACCESSORY_SET_HID_REPORT_DESC命令,以傳輸整個描述符。
  • ACCESSORY_SEND_HID_EVENT?將輸入事件從外設發送到Android設備。

這些新的控件請求的代碼定義如下:

/* Control request for registering a HID device.* Upon registering, a unique ID is sent by the accessory in the* value parameter. This ID will be used for future commands for* the device** requestType: USB_DIR_OUT | USB_TYPE_VENDOR* request: ACCESSORY_REGISTER_HID_DEVICE* value: Accessory assigned ID for the HID device* index: total length of the HID report descriptor* data none*/ #define ACCESSORY_REGISTER_HID 54/* Control request for unregistering a HID device.** requestType: USB_DIR_OUT | USB_TYPE_VENDOR* request: ACCESSORY_REGISTER_HID* value: Accessory assigned ID for the HID device* index: 0* data none*/ #define ACCESSORY_UNREGISTER_HID 55/* Control request for sending the HID report descriptor.* If the HID descriptor is longer than the endpoint zero max packet size,* the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC* commands. The data for the descriptor must be sent sequentially* if multiple packets are needed.** requestType: USB_DIR_OUT | USB_TYPE_VENDOR* request: ACCESSORY_SET_HID_REPORT_DESC* value: Accessory assigned ID for the HID device* index: offset of data in descriptor* (needed when HID descriptor is too big for one packet)* data the HID report descriptor*/ #define ACCESSORY_SET_HID_REPORT_DESC 56/* Control request for sending HID events.** requestType: USB_DIR_OUT | USB_TYPE_VENDOR* request: ACCESSORY_SEND_HID_EVENT* value: Accessory assigned ID for the HID device* index: 0* data the HID report for the event*/ #define ACCESSORY_SEND_HID_EVENT 57

總結

以上是生活随笔為你收集整理的AAP HID的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。