> For the complete documentation index, see [llms.txt](https://cavedu.gitbook.io/linkit-7697/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cavedu.gitbook.io/linkit-7697/linkit-7697-arduinoide/kai-fa-zhi-nan/shi-yong-ble-di-gong-hao-lan-ya/lble-api-zhi-nan/lbleadvertisementdata.md).

# 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 <a href="#lbleadvertisementdata-constructors" id="lbleadvertisementdata-constructors"></a>

&#x20;LBLEAdvertisementData()

{% tabs %}
{% tab title="LBLEAdvertisementData()" %}
建構一個 **LBLEAdvertisementData** 物件，後續用於儲存廣播封包的內容。

**Syntax**

**Parameters**

none

**Returns**

none
{% endtab %}
{% endtabs %}

### Methods <a href="#lbleadvertisementdata-methods" id="lbleadvertisementdata-methods"></a>

&#x20;configAsConnectableDevice()

configAsEddystoneURL()

&#x20;configAsIBeacon()

{% tabs %}
{% tab title="configAsConnectableDevice()" %}
將此物件的內容設定為一個可以被連接的BLE周邊裝置。這可以讓其他的主控裝置（如手機）可以連線到此開發板。

注意的是，此函數會**重置**所有先前設定的廣播內容欄位。

如果開發者有設置 serviceUUID，請先行利用LBLEPeripheral 的其他 API 設定好相映的 GATT 服務，再開始廣播。

**Syntax**

**Parameters**

deviceName: 裝置名稱，此字串的長度必須少於 27 位元組。

serviceUUID: 要包含在廣播資訊中，代表周邊裝置所提供的服務的 UUID。

**Returns**

none
{% endtab %}

{% tab title=" configAsEddystoneURL()" %}
將廣播內容設定為一個 Eddystone URL。請注意，URL的總長度不能夠超過 17 位元組。

**Syntax**

*advData.*&#x63;onfigAsEddystoneURL(prefix, url, suffix, tail);

**Parameters**

可以利用 prefix、suffix 與 tail 欄位，將常見的 URL 字串用一個位元組來表示。

比如說，"[https://www.mediatek.com](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>&#x20;

**Returns**

none
{% endtab %}

{% tab title=" configAsIBeacon()" %}
將廣播內容設定為 iBeacon 格式。

要注意的是，此函數會**重置**所有先前設定的廣播內容欄位。

如果不確定要在 iBeacon 格式中使用哪一個 UUID ，可以使用 [LBLEUuid](file:///D:/doxy_output/html/class_l_b_l_e_uuid.html)("74278BDA-B644-4520-8F0C-720EAF059935")，這是 iOS 開發指南中的範例 UUID。至於 major、minor，還有 txPower ，都是使用者自定義的欄位。

**Syntax**

*advData.*&#x63;onfigAsIBeacon(uuid, major, minor, txPower);

**Parameters**

uuid: iBeacon 裝置的 UUID。如果不確定要在 iBeacon 格式中使用哪一個 UUID ，可以使用 [LBLEUuid](file:///D:/doxy_output/html/class_l_b_l_e_uuid.html)("74278BDA-B644-4520-8F0C-720EAF059935")，這是 iOS 開發指南中的範例 UUID。

major: 使用者自定義的數值

minor: 使用者自定義的數值

txPower: 使用者自定義的 iBeacon 參考訊號強度。一般來說，這個數值要定義為「當藍牙主控裝置距離此周邊裝置一公尺的範圍時，所收到的信號強度」。

<br>

**Returns**

none
{% endtab %}
{% endtabs %}
