Just My Life & My Work

Posts tagged ‘ble’

[iOS] BLE某些概念的解釋

已經持續與藍芽奮戰近一年,來回顧一下BLE某些概念的解釋

首先總結CBServiceCBCharacteristic關係如圖,這樣才好理解其角色負責的任務!

bluetooth Services Characteristics

(繼續閱讀…)

廣告

[iOS] 取得藍芽裝置Mac

最近在開發藍芽裝置相關iOS App,每次掃描藍芽裝置都會出現一大串裝置的清單,那就表示周圍有很多藍芽裝置。怎麼來區別裝置?透過名稱是最方便的辦法,然而有時候名稱會重複(多台同款筆電、智慧手環等),此時就需要再透過Mac Address來辨識。

[iOS] 取得藍芽裝置Mac.png

然而開發iOS時卻發現沒有提供此功能!?直覺猜想是Apple為了保護用戶的隱私,所以將取得Mac的API隱藏起來,也就是說iOS 7之後就無法取得Mac Address,目前可以UUID的方式來替代。只是此UUID還滿神奇,每個iOS裝置掃到同一個藍芽裝置,都會有不一樣的UUID!老闆準備要測試時,每次問我那支是哪個「號碼」,我只能兩手一攤,「請你自己記住好嗎XD?

而Android就可以直接取得Mac Address!該說它好棒棒,還是⋯⋯

(繼續閱讀…)

[iOS] 重連藍芽裝置 (ReConnect BLE Device)

半年前透過人家寫好的藍芽裝置SDK,輕鬆愉快實現App各種功能,現在必須自己寫SDK這一層,也就是透過iOS SDK,來實現藍芽各種連線相關的功能。此刻,我來研究重連藍芽裝置

使用核心藍牙(Core Bluetooth)框架,有三種方式可以重連一個外設。你可以:

  1. 獲取已知外設的列表—你曾經發現或者鏈接的外設—使用retrievePeripheralsWithIdentifiers:方法。如果你尋找的外設在這個列表裡,嘗試去鏈接它。
  2. 用retrieveConnectedPeripheralsWithServices:方法獲取當前連接到系統的外設列表。如果你尋找的外設在這個列表裡,本地連接它。
  3. 用scanForPeripheralsWithServices:options:方法掃描發現外設。如果找到就連接。

取決於使用場景,你可能不想掃描發現相同的外設,每當你想重連它的時候。相反,你可能首先使用其他選項,嘗試重連。如圖所示,一個可能的重連工作流是嘗試每個選項。

一個示例重連工作流

BLE Retrieve.jpg

總覺得看了這圖後,就能完全掌握實作的流程!

(繼續閱讀…)

[iOS] 低功耗藍芽連線流程

最近寫iOS App要跟低功耗藍芽連線,接著傳輸資料解碼後來分析。兩年前有碰藍芽體脂計,是看著韌體溝通協議來實作,兩年後的今天再一次依樣畫葫蘆,這次要搞的硬體是24小時配戴的「玩意兒」。

bluetooth peripheral service characteristics

感謝網路上已有許多教學,學習藍芽只要拾人「芽」慧,就能快速上手!

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: