原创 BLE傳統廣播避坑指南

BLE傳統廣播避坑指南 前幾天和同事一起討論基於藍牙BLE實現的current time profile功能,發現不少安卓源碼問題。那這篇文章我們就來扒一扒安卓源碼中涉及BLE廣播的那些坑,爲藍牙開發者少走些彎路盡點綿薄之力。 對

原创 NFC Controller

NFC Controller 在NFC技術 的最後介紹到NFC Stack通過HIDL技術獲取到HAL Server,而該Server端通過HAL技術打開了NFC產商提供的so庫。本篇就大概介紹下HAL這塊是怎麼和廠商NFC芯片交

原创 藍牙電話之PBAP協議的連接

藍牙電話之PBAP—連接 前一篇文章《藍牙電話之PBAP協議分析》大致講解了PBAP協議的相關內容,本篇我們就開啓PBAP連接流程的分析。由於PBAP的連接過程涉及到的知識點較多,有些地方沒有分析寫出來還忘理解。 PBAP的連接

原创 NFC 前臺發佈系統

NFC 前臺發佈系統 NFC掃描到的標籤Tag最終是需要上報到應用Application進行數據的讀寫操作。上報的方式現在主要有兩種:前臺發佈、Intent過濾發佈。我們先來分析下NFC前臺發佈系統是如何工作的。 Applicat

原创 藍牙鏈路斷開的原因

藍牙連接是使用藍牙的基礎,那藍牙斷開可能就不完全是我們能夠控制的。也就是說藍牙鏈路的斷開可能因爲各種各樣的原因,那本篇就帶大家詳解藍牙斷開的原因。 藍牙鏈路也就是藍牙專業人士說的ACL鏈路,所有的藍牙操作都是在此基礎上進行的,一旦

原创 NFC Discovery

NFC Discovery NFC系統在初始化完成後EnableDisableTask.enableInternal()會默認開啓掃描,應用apk也可以主動發起搜索掃描NFC設備NfcAdapter. resumePolling(

原创 藍牙電話之HFP-電話音頻

藍牙電話之HFP協議中的電話音頻 藍牙技術通信的內容多種多樣,其中音頻部分包含媒體音頻和電話音頻。 媒體音頻:播放藍牙音樂的數據,這種音頻對質量要求高,數據發送有重傳機制,從而以l2cap的數據形式走ACL鏈路。編碼方式有:SBC

原创 藍牙電話之PBAP協議分析

藍牙電話之PBAP—簡介 藍牙電話應用不但需要HFP協議來支持打電話的功能,還有查看通訊錄和通話記錄等需求,那這就是PBAP協議乾的事了,本系列我們就來聊一聊PBAP的前世今生。 PBAP:Phone Book Access Pr

原创 傳統藍牙BR/EDR的搜索Inquiry

傳統藍牙BR/EDR的搜索Inquiry 一提到藍牙想必大家都會隨口而出藍牙音樂、藍牙免提電話等等藍牙技術提供的這些功能,這也是用戶使用藍牙的目的。但所有這些功能得以正常使用,有一個必要條件——藍牙搜索。操作藍牙的這些功能必須得

原创 傳統藍牙搜索流程分析

傳統藍牙搜索流程分析 本期承接上篇分享《傳統藍牙BR/EDR的搜索Inquiry》來聊聊安卓系統中傳統藍牙搜索是如何實現的。 安卓系統中應用Application通過藍牙適配器接口BluetoothAdapter.startDi

原创 安卓系統藍牙配對流程分析

安卓系統藍牙配對流程分析 配對流程基本上始於首次連接一個藍牙設備的過程中,本端的搜索流程結束獲取到該設備的BluetoothDevice信息,就可以開啓配對流程。 配對,顧名思義就是將兩個設備通過相關技術進行綁定,達到能夠互相識

原创 藍牙配對協議分析二

藍牙配對協議分析二 本篇接着《藍牙配對協議分析一》來繼續分析下SSP安全簡單配對的完整流程。 SSP流程總體上的消息序列圖如下: 從上圖可以明顯看出整個過程大概分爲11個步驟,有些步驟存在不同的可選項,接下來依次講解下每個步驟

原创 藍牙配對協議分析一

藍牙配對協議分析一 藍牙配對是整個藍牙連接過程中必不可少的環節,配對的目的是通過各種方法創建共享的 鏈路密鑰(Link Key),該密鑰用於設備間連接時認證鑑權並加密相互交互的數據,使得藍牙技術更具有安全行。密鑰不但可以用於當前

原创 安卓系統中默認打開藍牙 HCI snoop 文件的方法

藍牙開發的同學想必一定遇到這樣的問題: fastboot重刷完安卓系統後,snoop文件是默認不保存的。 這對相當多藍牙協議棧開發人員是一個麻煩,因爲通過分析Host和Controller之間的消息交互能確定很多問題,那有沒有什

原创 安卓源碼避坑指南3——撥打電話的SIM卡無效導致藍牙斷開連接

安卓源碼避坑指南3——撥打電話的SIM卡無效導致藍牙斷連 它來了、它來了,它帶着BUG趕來了,歡迎大家查看本期的安卓源碼避坑指南。本期的問題場景比較特殊,電話SIM卡是無效的(欠費過期了,很是貧窮…)。 開開心心地上着班、摸着魚