LBLEAdvertisementData
這個類別可以協助開發者設定或解析 BLE 的廣播封包的內容。
低功耗藍牙的周邊裝置,會不斷對周圍廣播各種資訊,如周邊裝置支援的服務類型等。這個廣播資訊的長度有所限制,但是格式卻非常有彈性。
這個類別可以協助設定一些常見的廣播封包格式,比如說 iBeacon 的信標廣播封包:
LBLEAdvertisementData beaconData;
// This is a common AirLocate example UUID.
LBLEUuid uuid("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0");
beaconData.configAsIBeacon(uuid, 01, 02, -40);設定好內容之後,只需要將此物件傳遞給 LBLEPeripheral.advertise ,就可以開始廣播此封包的內容。
Constructors
LBLEAdvertisementData()
建構一個 LBLEAdvertisementData 物件,後續用於儲存廣播封包的內容。
Syntax
Parameters
none
Returns
none
Methods
configAsConnectableDevice()
configAsEddystoneURL()
configAsIBeacon()
將此物件的內容設定為一個可以被連接的BLE周邊裝置。這可以讓其他的主控裝置(如手機)可以連線到此開發板。
注意的是,此函數會重置所有先前設定的廣播內容欄位。
如果開發者有設置 serviceUUID,請先行利用LBLEPeripheral 的其他 API 設定好相映的 GATT 服務,再開始廣播。
Syntax
Parameters
deviceName: 裝置名稱,此字串的長度必須少於 27 位元組。
serviceUUID: 要包含在廣播資訊中,代表周邊裝置所提供的服務的 UUID。
Returns
none
將廣播內容設定為一個 Eddystone URL。請注意,URL的總長度不能夠超過 17 位元組。
Syntax
advData.configAsEddystoneURL(prefix, url, suffix, tail);
Parameters
可以利用 prefix、suffix 與 tail 欄位,將常見的 URL 字串用一個位元組來表示。
比如說,"https://www.mediatek.com" 可以表示為 configAsEddystoneURL(EDDY_HTTPS_WWW, "mediatek", EDDY_DOT_COM)。
又比如說, "https://www.asp.net/learn" => configAsEddystoneURL(EDDY_HTTPS_WWW, "asp", EDDY_DOT_NET_SLASH, "learn")
如果想要知道有哪些 prefix, suffix 可以使用,可參考這個網址: https://github.com/google/eddystone/tree/master/eddystone-url#url-scheme-prefix
Returns
none
將廣播內容設定為 iBeacon 格式。
要注意的是,此函數會重置所有先前設定的廣播內容欄位。
如果不確定要在 iBeacon 格式中使用哪一個 UUID ,可以使用 LBLEUuid("74278BDA-B644-4520-8F0C-720EAF059935"),這是 iOS 開發指南中的範例 UUID。至於 major、minor,還有 txPower ,都是使用者自定義的欄位。
Syntax
advData.configAsIBeacon(uuid, major, minor, txPower);
Parameters
uuid: iBeacon 裝置的 UUID。如果不確定要在 iBeacon 格式中使用哪一個 UUID ,可以使用 LBLEUuid("74278BDA-B644-4520-8F0C-720EAF059935"),這是 iOS 開發指南中的範例 UUID。
major: 使用者自定義的數值
minor: 使用者自定義的數值
txPower: 使用者自定義的 iBeacon 參考訊號強度。一般來說,這個數值要定義為「當藍牙主控裝置距離此周邊裝置一公尺的範圍時,所收到的信號強度」。
Returns
none
Last updated