精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用安卓APP來調試藍牙

藍牙技術聯盟 ? 來源:xx ? 2019-08-10 09:08 ? 次閱讀

隨著物聯網和互聯設備市場的快速增長,Google Play中也出現了越來越多采用藍牙(Bluetooth)的創新應用。越來越多的團隊也開始加入創建安卓藍牙應用的大軍,對于開發者來說,有關藍牙協議棧和API的一些基礎知識至關重要,今天小編就帶大家一探究竟!

了解SDK 和協議棧(Stack)

只需要幾行調用高級API的代碼,你就能通過藍牙迅速掃描并連接目標設備。若想了解如何在APP中采用低功耗藍牙技術,或只是想創建樣板文件框架代碼,都可以點擊訪問應用加速器套件(App Accelerator Kit)頁面。

要想讓APP的性能更上一層樓,很有必要先了解一下安卓開發中的藍牙API。自從安卓4.3版本(JELLY_BEAN_MR2API Level: 18)中引入了低功耗藍牙技術(BluetoothLow EnergyTechnology)的特性以來,面向安卓的SDK和藍牙協議棧就在不斷演進。

從安卓5.0開始(APILevel: 21),添加了新的android.bluetooth.le數據包。對于有些藍牙操作,可能有多種實現方式。因此,你需要確認用戶操作系統版本和API等級,以更好地了解藍牙SDK的功能。

不同手機上的藍牙功能和特性也有可能不同。以BluetoothLeAdvertiser類為例,并不是所有的手機都支持”HAL-enabledfeatures”特性,開發者需要特別調用函數BluetoothAdapter.isMultipleAdvertisementSupported(),以確認其在當前設備上是否支持。

在開發者選項中,可以使能藍牙HCI日志,這是一個非常有用的工具--“HCI信息收集日志(HCI snoop log)”(4.4以上版本)。


它在協議棧中就像個鉤子,能夠捕捉到所有的HCI數據包并將其寫入到一個文件當中。大部分安卓設備的日志文件位于/sdcard/btsnoop_hci.log??梢酝ㄟ^這篇文章詳細了解如何設置工具并檢索信息。

同時,第三方的調試工具,例如北歐半導體(Nordic Semiconductor)提供的一款面向安卓的工具--“nRF Master Control Panel”,其與在iOS使用的“LightBlue”非常類似。這款APP能作為GAP/GATT客戶端為開發者獲取很多信息。它還能模擬安卓GATT服務器。更強的是,它還能顯示通信范圍內廣播的實時RSSI圖形。這一工具可在Google Play中獲取。


了解連接間隔(Connection Interval)

藍牙連接間隔是APP的一組重要參數。為了平衡功耗和性能,你需要針對特定用例進行參數微調。

在 GAP (通用訪問配置文件)層,外圍設備發出廣播,中央設備來接收。然后中央設備發起連接,外圍設備接受連接請求。當中央設備發起藍牙連接時,會發出包含一系列連接參數的連接請求(connect_req)。

連接間隔(Connection interval)

從設備延遲(Slavelatency)

管理超時(Managementtimeout)

在初始請求中,連接間隔應設為initial_conn-interval,從設備延遲為零。安卓設備上的initial_conn_interval(連接建立時的連接間歇初始值)設置為7.5ms,這是規格所允許的最小值。在 7.5ms的間隔下,我們能夠獲取最高的吞吐量,但這也非常耗電(越小的間隔意味著越頻繁的連接事件,進而傳輸更多數據,相應地就會造成更高功耗)。當連接建立、中央設備端的發起連接活動完成后,中央設備或外圍設備就能發出連接參數更新的請求。這一請求是希望對方設備采納的參數建議。對方接受建議之后,中央設備就會開始進行連接參數更新過程。安卓的這一過程是在BluetoothGatt類中實施的。需調用requestConnectionPriority方法更新連接參數。目前在API Level23中,更新方法支持三組參數:

CONNECTION_PRIORITY_BALANCED

CONNECTION_PRIORITY_HIGH

CONNECTION_PRIORITY_LOW

進程如下:


目標設備也可能會向安卓發送連接參數更新請求,希望按照自己的偏好改變間隔。但間隔設定的最終決定權還是在主設備(在鏈路層發起連接的設備)。

了解數據包(Packet)和流程(Procedure)

藍牙開發可用的另一個強有力的工具就是協議分析器(protocol analyzer),也就是嗅探器(the sniffer)。本文中我用的是ComProbe BPA低功耗藍牙協議分析器,通過它我可以輕松地了解無線通訊情況或判斷問題所在。

當我不確定安卓協議棧和API傳遞的數據是否正確時,就會啟動分析器,檢查不同層的細節。下面的截圖就顯示了 “Read by type”運行的細節。我還可以轉到 “Handle value pair”,針對其逐步進行調試。


調試隱藏活動(Invisible Activity)或后臺服務(Background Service)

APP不會一直在前臺運行。任何更高優先級的任務都可能將你的藍牙應用轉變為不可見模式。有時藍牙運行的實施是在后臺的服務中。多數情況下,藍牙不在前臺時,運行可能會有所不同。在后臺或服務中的運行場景需經過測試和認證。幾乎所有的安卓調試器都支持一項特性,那就是附加至某一特定進程。你只需要找到APP的進程ID,將調試器附加到這一特定進程即可。


自從安卓開始支持低功耗藍牙以來,每一次版本更新都包括了藍牙協議棧和API的改進。再加上易于開發者采用的API和工具,安卓正逐漸成為物聯網生態系統中最強有力的平臺。期待不久的將來能夠看到更多創新的安卓應用。

本篇作者為:藍牙技術聯盟技術項目經理 高文森先生

原文標題:如何利用安卓APP調試藍牙

文章出處:【微信公眾號:藍牙技術聯盟】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 藍牙
    +關注

    關注

    114

    文章

    5765

    瀏覽量

    169801
  • 安卓
    +關注

    關注

    5

    文章

    2120

    瀏覽量

    57017
收藏 人收藏

    評論

    相關推薦

    手機的藍牙

    手機的藍牙與外部透明串口藍牙怎么不能連接識別啊。 有的說三星手機的可以識別,那其他的手機就不能嗎? 有的說藍牙協議不支持,到底是升級串口
    發表于 09-02 17:01

    藍牙4.1】app安裝失敗

    ` 本帖最后由 770781327 于 2015-6-30 21:28 編輯 大家有沒有用到手機端的app呢,我是手機,官網提供的這app貌似無法安裝呀,我都換了四家的
    發表于 06-30 21:27

    求教一個問題,stm32,手機,藍牙串口

    如果手機通過藍牙串口發送數據給32,可以通過中斷,如果32通過藍牙發送數據給手機,應該怎樣做??難道在APP里寫一個不斷接受數據流的語句
    發表于 07-16 14:46

    求教,stm32,手機,藍牙串口

    如果手機通過藍牙串口發送數據給32,可以通過中斷,如果32通過藍牙發送數據給手機,應該怎樣做??難道在APP里寫一個不斷接受數據流的語句
    發表于 07-17 13:38

    【云智易試用體驗】APP demo編譯與運行

    的XLINK_SDK_Android_Demo.zip解壓),導入后如上圖,發現有幾個錯誤。然后點工程的屬性,選擇一下的SDK,我這里是4.3.0, 勾選后錯誤消失。下面打開
    發表于 09-05 21:59

    手機APP通過藍牙不能連接上stm32中的單片機中的藍牙模塊

    手機APP通過藍牙連接不上stm32單片機中的藍牙模塊,之前是自己寫的APP發現連接不上,后
    發表于 04-27 22:58

    藍牙模塊調試連不上電腦

    最近在做藍牙模塊的測試,用的是SIM800C,淘寶買的模塊。使用串口配置沒有問題,但是藍牙功能還沒調試。電腦有藍牙功能,但是直接連模塊發現連不上。蘋果的商店里沒找到
    發表于 04-29 23:13

    請問在平臺下TI有沒有提供OAD調試工具?

    請教。在平臺下TI有沒有提供OAD調試工具?目前情況是,我們自己做了一個藍牙板,板上OAD已經調試完畢可以升級,手機端支持IOS和
    發表于 09-27 12:58

    手機與藍牙模塊聯合調試—— 單片機藍牙控制LED燈亮滅(上)

    系列博文:(1)手機與藍牙模塊聯合調試(一)——藍牙模塊的串口通訊 (2)
    發表于 07-01 07:36

    如何利用App inventor編寫app控制ESP8266?

    如何利用App inventor編寫app控制ESP8266?
    發表于 02-11 07:04

    編程藍牙軟件

    想編程軟件 控制藍牙? 零基礎? 要學習哪個編程軟件
    發表于 12-17 16:01 ?579次閱讀

    系統藍牙調試助手工具源代碼下載

    系統藍牙調試助手工具源代碼下載
    發表于 07-12 10:35 ?8次下載

    基于單片機手機無線藍牙APP的閃電算答題系統

    基于單片機手機無線藍牙APP的閃電算答題系統
    發表于 11-26 20:21 ?19次下載
    基于單片機<b class='flag-5'>安</b><b class='flag-5'>卓</b>手機無線<b class='flag-5'>藍牙</b><b class='flag-5'>APP</b>的閃電算答題系統

    Arduino/Android藍牙伺服電機控制APP

    電子發燒友網站提供《Arduino/Android藍牙伺服電機控制APP.zip》資料免費下載
    發表于 12-05 09:14 ?4次下載
    Arduino/Android<b class='flag-5'>藍牙</b>伺服電機控制<b class='flag-5'>安</b><b class='flag-5'>卓</b><b class='flag-5'>APP</b>

    云視角APP更新通知

    我司于2021年12月23日更新發布了云視角APP,用戶可通過手機應用寶軟件自行下載更新。由于我司產品的豐富,功能不斷優化,我司于今
    的頭像 發表于 03-31 09:47 ?529次閱讀
    云視角<b class='flag-5'>安</b><b class='flag-5'>卓</b><b class='flag-5'>APP</b>更新通知