Android 開發中配置 USB 配件模式(Accessory Mode) 配件過濾器的配置

在 Android 開發中配置?USB 配件模式(Accessory Mode)?的配件過濾器(accessory_filter.xml),需要以下步驟:


1.?創建配件過濾器文件

在項目的?res/xml/?目錄下創建?accessory_filter.xml?文件(若無?xml?目錄請先創建)。

2.?配置 XML 內容

在文件中聲明支持的 USB 配件參數,常用屬性包括:

  • manufacturer:配件制造商名稱

  • model:配件型號

  • version:固件版本號

示例代碼:
<?xml version="1.0" encoding="utf-8"?>
<resources><!-- 匹配特定制造商和型號的配件 --><usb-accessorymanufacturer="Acme Inc"model="Controller 3000"version="1.0" /><!-- 匹配所有型號的配件(僅指定制造商) --><usb-accessorymanufacturer="TechGadgets" /><!-- 匹配任意配件(不指定任何屬性) --><usb-accessory />
</resources>

3.?在 AndroidManifest.xml 中注冊

在需要響應 USB 配件的 Activity 中聲明:

<activity android:name=".USBAccessoryActivity"><intent-filter><action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /></intent-filter><meta-dataandroid:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"android:resource="@xml/accessory_filter" />
</activity>

4.?添加 USB 權限

在?AndroidManifest.xml?中添加權限:

<uses-permission android:name="android.permission.USB_PERMISSION" />
<uses-feature android:name="android.hardware.usb.accessory" />

5.?在代碼中處理 USB 配件

在 Activity 中獲取 USB 配件對象:

public class USBAccessoryActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Intent intent = getIntent();if (UsbManager.ACTION_USB_ACCESSORY_ATTACHED.equals(intent.getAction())) {UsbAccessory accessory = intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);// 處理配件通信邏輯}}
}

關鍵配置說明:

屬性作用是否必須
manufacturer匹配配件制造商(字符串)可選
model匹配配件型號(字符串)可選
version匹配固件版本(字符串)可選
無屬性匹配所有 USB 配件(謹慎使用)可選

注意事項:

  1. 兼容性:確保設備支持 USB Host/配件模式(Android 3.1+)。

  2. 權限請求:首次連接需動態申請權限(使用?UsbManager.requestPermission())。

  3. 多配件支持:在 XML 中添加多個?<usb-accessory>?節點可匹配多個配件。

  4. 協議要求:配件需實現?Android 配件協議。

完成配置后,當匹配的 USB 配件接入時,系統會提示用戶啟動你的應用,并傳遞配件對象進行通信。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86647.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FreeRTOS互斥量

目錄 1.使用場合2.函數2.1 創建2.1.1 動態創建2.1.2 靜態創建 2.2 刪除2.3 釋放&#xff08;Give&#xff09;2.4 獲取&#xff08;Take&#xff09;2.5 ISR 版本注意事項 3.常規使用流程4.和二進制信號量的對比5.遞歸鎖5.1 死鎖5.2 概念5.2.1 問題5.2.2 解決方案&#xff1a;遞…

ThinkPad 交換 Ctrl 鍵和 Fn 鍵

概述 不知道那個大聰明設計的將fn設置在最左邊&#xff0c;xxx&#xff0c;我服了&#xff0c;你這個老六真惡心。 方法 一&#xff1a;BIOS/UEFI 設置&#xff08;推薦&#xff09; 重啟 你的 ThinkPad。 在啟動時按下 F1&#xff08;或 Enter&#xff0c;再按 F1&#xff0…

`dispatch_source_t` 計時器 vs `NSTimer`:核心差異一覽

維度GCD 計時器 (dispatch_source_t)NSTimer依賴機制直接掛在 GCD 隊列;底層走 Mach 內核定時源掛在 RunLoop,必須指定 RunLoop & mode線程上下文哪個隊列就在哪條線程回調(例中用 dispatch_get_main_queue())總在定時器所在的 RunLoop 線程(默認主線程 & NSDefau…

ubuntu22.04系統安裝部署docker和docker compose全過程!

更新系統包 首先&#xff0c;確保系統包是最新的&#xff1a; sudo apt updatesudo apt upgrade -y安裝依賴 安裝 Docker 所需的依賴包&#xff1a; sudo apt install -y apt-transport-https ca-certificates curl software-properties-common添加 Docker 官方 GPG 密鑰 添加…

企業如何增強終端安全?

在數字化轉型加速的今天&#xff0c;企業的業務運行越來越依賴于終端設備。從員工的筆記本電腦、智能手機&#xff0c;到工廠里的物聯網設備、智能傳感器&#xff0c;這些終端構成了企業與外部世界連接的 “神經末梢”。然而&#xff0c;隨著遠程辦公的常態化和設備接入的爆炸式…

VS2017----打開ui文件幾秒后閃退

問題描述 在vs2017中雙擊ui文件能夠打開,但是幾秒后就閃退了,提示報錯 問題解決 QT VS tools ----Options,把這個設置為True保存即可

深入解析Docker網橋模式:從docker0到容器網絡的完整通信鏈路

1. 簡介docker 網橋模式 Docker 啟動時默認創建 docker0 虛擬網橋&#xff08;Linux bridge&#xff09;&#xff0c;并分配私有 IP 地址范圍&#xff08;如 172.17.42.1/16&#xff09;&#xff0c;它的作用相當于一個虛擬交換機&#xff0c;讓宿主機和多個容器之間可以通信。…

Proof of Talk專訪CertiK聯創顧榮輝:全周期安全方案護航Web3生態

6月10日&#xff0c;CertiK聯合創始人兼CEO顧榮輝在Proof of Talk 2025舉辦期間&#xff0c;接受大會官方專訪&#xff0c;分享了他對Web3安全現狀的觀察以及CertiK的安全戰略布局。 顧榮輝指出&#xff0c;雖然安全的重要性被廣泛認可&#xff0c;但許多創業者和開發者仍存在…

再說一說LangChain Runnable接口

之前我們介紹過LangChain通過Runnable和LCEL來實現各個組件的快捷拼裝&#xff0c;整個過程就像拼積木一樣。 今天我們深入剖析Runnable接口的底層實現邏輯。 往期文章推薦: 16.Docker實戰&#xff1a;5分鐘搞定MySQL容器化部署與最佳實踐15.Ollama模板全解析&#xff1a;從基…

LLaMA-Factory微調Qwen3模型完了,怎么直接用vllm推理模型?

環境&#xff1a; LLaMA-Factory vllm0.8.5 Qwen3-8b 問題描述&#xff1a; LLaMA-Factory微調Qwen3模型完了,怎么直接用vllm推理模型&#xff1f; 解決方案&#xff1a; 一、合并 LoRA 權重與基礎模型 vLLM 需要完整的模型文件&#xff08;含合并后的權重&#xff09;…

C#AES加密

一、AES 加密概念 定義 &#xff1a;AES&#xff08;Advanced Encryption Standard&#xff0c;高級加密標準&#xff09;是一種對稱加密算法&#xff0c;由美國國家標準與技術研究院&#xff08;NIST&#xff09;于 2001 年發布&#xff0c;用于替代之前的 DES&#xff08;數據…

搞了兩天的win7批處理腳本問題

目錄 問題 原因&#xff1a; 經過各種對比 解決方法 問題 比如 echo "yes" | find /c /v "" 這個統計非空串的行數&#xff0c;在其它系統都是 1&#xff1b;但在win7里非正常的反應&#xff0c;為空。 原因&#xff1a; 在wvpCheckStart.bat 首…

手陽明大腸經之溫溜穴

個人主頁&#xff1a;云納星辰懷自在 座右銘&#xff1a;“所謂堅持&#xff0c;就是覺得還有希望&#xff01;” 溫溜又名&#xff1a; 1.《針灸甲乙經》&#xff1a;逆注、蛇頭。 2.《資生》&#xff1a;池頭。 所屬經絡&#xff1a;手陽明大腸經 定位 屈肘&#xff0c;在前臂…

傳統Web應用和RESTful API模式

傳統Web應用和RESTful API 傳統模式 傳統模式沒有實現前后端分離&#xff0c;服務器處理完業務后直接返回完整的HTML頁面&#xff0c;每次操作都要刷新整個頁面。類似下面的情況&#xff1a; Controller public class UserController {RequestMapping("/addUser")…

JS開發node包并發布流程

開發一個可發布到 npm 的 JavaScript 插件&#xff0c;需要遵循標準的開發、測試、打包和發布流程。以下是詳細步驟指南&#xff1a; 1. 初始化項目 創建項目目錄并初始化 package.json mkdir my-js-plugin cd my-js-plugin npm init -y手動修改 package.json&#xff0c;確保…

對比學習(Contrastive Learning)方法詳解

對比學習&#xff08;Contrastive Learning&#xff09;方法詳解 對比學習&#xff08;Contrastive Learning&#xff09;是一種強大的自監督或弱監督表示學習方法&#xff0c;其核心思想是學習一個嵌入空間&#xff0c;在這個空間中&#xff0c;相似的樣本&#xff08;“正樣…

1.6 http模塊nodejs 對比 go

我們以go語言 原生實現 和瀏覽器交互.到現在學習 nodejs http模塊. nodejs 對于請求分發,也需要我們自己處理. 我們應該也對 http 服務是建立在 tcp協議基礎上.有更深入的體會了吧. 對于我們之后 學習 java web容器. 能有更深入的認知. 請求分發 請求分發是指 Web 框架或服務器…

護照閱讀器在景區的應用

護照閱讀器在景區的應用可以顯著提升游客管理效率、增強安全性并優化游客體驗。以下是其主要應用場景、優勢及實施建議&#xff1a; 一、核心應用場景 快速入園核驗 自動身份識別&#xff1a;通過掃描護照芯片&#xff08;MRZ碼或NFC讀取&#xff09;&#xff0c;1-3秒完成身份…

Prompt Tuning、P-Tuning、Prefix Tuning的區別

一、Prompt Tuning、P-Tuning、Prefix Tuning的區別 1. Prompt Tuning(提示調優) 核心思想:固定預訓練模型參數,僅學習額外的連續提示向量(通常是嵌入層的一部分)。實現方式:在輸入文本前添加可訓練的連續向量(軟提示),模型只更新這些提示參數。優勢:參數量少(僅提…

什么是遙測數據?

遙測數據定義 遙測數據提供了關于系統性能的重要洞察&#xff0c;對主動解決問題和做出明智決策至關重要。要實現這一點&#xff0c;不能只依賴原始數據 —— 你需要實時的洞察&#xff0c;而這正是遙測數據提供的。 遙測是從遠程來源&#xff08;如服務器、應用程序和監控設…