Core Bluetooth庫(kù)編程指南官方文檔翻譯1-7

設(shè)置你的本地設(shè)備作為外設(shè)的最佳實(shí)踐

和許多中央端事務(wù)一樣坷檩,這個(gè)Core Bluetooth框架給你控制實(shí)現(xiàn)外設(shè)角色的大部分按价。這個(gè)章節(jié)提供了指導(dǎo)方針和最佳實(shí)踐,以一種負(fù)責(zé)任的方式利用這種控制的水平。

廣播的注意事項(xiàng)

廣播外設(shè)數(shù)據(jù)對(duì)于設(shè)置你的本地設(shè)備來(lái)實(shí)現(xiàn)外設(shè)角色是很重要的属韧。下面的部分有助于以一個(gè)恰當(dāng)?shù)姆绞阶鲞@些。

考慮廣播數(shù)據(jù)的限制

你廣播你的外設(shè)數(shù)據(jù)通過(guò)CBPeripheralManager類的startAdvertising:方法傳遞一個(gè)廣播數(shù)據(jù)的字典蛤吓,正如Advertising Your Services所描述宵喂。當(dāng)你創(chuàng)建了一個(gè)廣播字典,記住柱衔,你可以廣播時(shí)有什么限制以及限制多少樊破。
雖然在通常情況下廣播包可以攜帶關(guān)于外設(shè)的多種信息,你只能夠廣播你的設(shè)備本地名和你想要廣播的一些服務(wù)UUIDs唆铐。也就是說(shuō)哲戚,當(dāng)你創(chuàng)建你的廣播字典時(shí),你只能指定這兩個(gè)鍵:CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey艾岂。如果你指定其它的鍵會(huì)接收到一個(gè)錯(cuò)誤顺少。
當(dāng)廣播數(shù)據(jù)時(shí)你使用的空間也是有限的。當(dāng)你的應(yīng)用程序處于前臺(tái),最多可以使用28個(gè)字節(jié)的空間在初始廣播數(shù)據(jù)中脆炎,為了提供給兩個(gè)支持的廣播數(shù)據(jù)鍵梅猿。如果這個(gè)空間用完了,有一個(gè)在掃描響應(yīng)時(shí)只能用于本地名稱的額外的10字節(jié)的空間秒裕,任何服務(wù)的UUIDs都不適用于分配到這個(gè)特殊的溢出區(qū)域袱蚓;它們只能被發(fā)現(xiàn)通過(guò)一個(gè)iOS設(shè)備明確地掃描它們。當(dāng)你的應(yīng)用程序處于后臺(tái)時(shí)几蜻,在這個(gè)溢出區(qū)域本地名稱不會(huì)被廣播喇潘,所有的服務(wù)UUIDs在這里。

注意:這些空間大小不包括任何新數(shù)據(jù)類型要求的頭部信息的兩個(gè)字節(jié)梭稚。廣播和回應(yīng)數(shù)據(jù)的準(zhǔn)確的格式在藍(lán)牙4.0規(guī)范中有定義颖低。

為了幫助你保持在這些空間約束內(nèi),限制你廣播給這些標(biāo)識(shí)你的主要服務(wù)的服務(wù)UUIDs弧烤。

只有在你需要的時(shí)候才廣播數(shù)據(jù)

自從廣播外設(shè)數(shù)據(jù)使用你的本地設(shè)備的無(wú)線(和你設(shè)備的電池),當(dāng)你想要其它的設(shè)備連接你的設(shè)備時(shí)才廣播忱屑。一旦連接上,這些設(shè)備可以直接探索并于外設(shè)數(shù)據(jù)交互暇昂,不需要其它的任何廣播包莺戒。因此,為了最小化無(wú)線的使用话浇,增加應(yīng)用程序的性能,保留你的設(shè)備的電量脏毯,當(dāng)它不再需要時(shí)停止廣播來(lái)促進(jìn)任何預(yù)期的藍(lán)牙低功耗事務(wù)。為了在你的本地外設(shè)上停止廣播幔崖,簡(jiǎn)單地調(diào)用CBPeripheralManager類的stopAdvertising方法食店,就像:

[myPeripheralManager stopAdvertising];
讓用戶決定什么時(shí)候廣播

知道什么時(shí)候可以廣播往往是用戶可以知道的東西。例如赏寇,當(dāng)你知道附近沒(méi)有任何其它的藍(lán)牙低功耗設(shè)備時(shí)在你的設(shè)備上廣播服務(wù)是沒(méi)有意義的吉嫩。你的應(yīng)用程序往往也沒(méi)有意識(shí)附近有什么其它的設(shè)備,在你的應(yīng)用程序上為用戶提供用戶交互界面來(lái)讓用戶決定什么時(shí)候去廣播嗅定。

配置你的特征

當(dāng)你創(chuàng)建一個(gè)可變的特征自娩,你要設(shè)置它的屬性,值渠退,和權(quán)限忙迁。這些設(shè)置決定著怎樣與訪問(wèn)和與特征值交互的中央連接。雖然你可能要決定配置你的特征的屬性和權(quán)限在你的應(yīng)用程序需求的基礎(chǔ)上碎乃。下面部分提供了一些指導(dǎo)方針在你需要執(zhí)行下面兩個(gè)任務(wù)時(shí):

  • 允許連接的中央來(lái)訂閱你的特征
  • 保護(hù)敏感的特征值被配對(duì)中央訪問(wèn)
配置你的特征來(lái)支持通知

正如在Subscribe to Characteristic Values That Change Often中描述,要求中央訂閱經(jīng)常改變的特征值(一個(gè)遠(yuǎn)程外設(shè)的服務(wù)的)姊扔。當(dāng)可能時(shí),通過(guò)允許連接外設(shè)來(lái)訂閱你的特征值來(lái)鼓勵(lì)這個(gè)實(shí)踐梅誓。
當(dāng)你創(chuàng)建了一個(gè)可變的特征恰梢,配置它來(lái)支持訂閱佛南,通過(guò)使用CBCharacteristicPropertyNotify常量來(lái)設(shè)置特征屬性,就像:

myCharacteristic = [[CBMutableCharacteristic alloc] initWithType:myCharacteristicUUID properties:CBCharacteristicPropertyRead | CBCharacteristicPropertyNotify value:nil permission:CBAttributePermissionReadable];

在這個(gè)例子中嵌言,特征值是可讀的嗅回,并能夠通過(guò)連接的中央訂閱。

需要一個(gè)配對(duì)的連接來(lái)訪問(wèn)敏感數(shù)據(jù)

根據(jù)一些使用情況摧茴,你可能想要發(fā)送一個(gè)有一個(gè)或多個(gè)特征值需要很安全的服務(wù)绵载。例如,想象你想要發(fā)送一個(gè)社交媒體配置服務(wù)苛白。這個(gè)服務(wù)可能有特征值代表成員的個(gè)人信息尘分,比如姓,名丸氛,和郵件地址。很可能著摔,你想要允許只有信任的設(shè)備來(lái)獲取一個(gè)成員的郵件地址缓窜。
你可以通過(guò)設(shè)置恰當(dāng)?shù)奶卣鲗傩院蜋?quán)限來(lái)保證只有信任的設(shè)備能夠訪問(wèn)敏感的特征值。繼續(xù)這個(gè)例子谍咆,為了允許只有信任的設(shè)備獲取一個(gè)成員的郵件地址禾锤,設(shè)置特征的屬性和權(quán)限,就像:

emailCharacteristic = [[CBMutableCharacteristic alloc] initWithType:emailCharacteristicUUID properties:CBCharacteristicPropertyRead | CBCharacteristicPropertyNotifyEncryptionRequired value:nil permissions:CBAttributePermissionsReadEncryptionRequired];

在這個(gè)例子中摹察,特征被配置成允許只有信任的設(shè)備能夠讀和訂閱它的值恩掷。當(dāng)一個(gè)連接遠(yuǎn)程中央嘗試讀取或訂閱這個(gè)特征值時(shí),Core Bluetooth會(huì)嘗試配對(duì)你的本地外設(shè)與該中央來(lái)創(chuàng)建一個(gè)安全的連接供嚎。
例如黄娘,如果中央和外設(shè)都是iOS設(shè)備,兩個(gè)設(shè)備接收到一個(gè)提醒克滴,表明另一個(gè)設(shè)備想要配對(duì)逼争。中央設(shè)備的提醒包含一個(gè)密碼你必須填入外圍設(shè)備的文本框中來(lái)完成配對(duì)步驟。
在完成配對(duì)步驟后劝赔,外設(shè)會(huì)認(rèn)為該配對(duì)的中央是可信任的設(shè)備誓焦,并允許該中央訪問(wèn)它的加密的特征值。

--翻譯的文檔地址:Best Practices for Setting Up Your Local Device as a Peripheral

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末着帽,一起剝皮案震驚了整個(gè)濱河市杂伟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仍翰,老刑警劉巖赫粥,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異歉备,居然都是意外死亡傅是,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喧笔,“玉大人帽驯,你說(shuō)我怎么就攤上這事∈檎ⅲ” “怎么了尼变?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)浆劲。 經(jīng)常有香客問(wèn)我嫌术,道長(zhǎng),這世上最難降的妖魔是什么牌借? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任度气,我火速辦了婚禮,結(jié)果婚禮上膨报,老公的妹妹穿的比我還像新娘磷籍。我一直安慰自己,他們只是感情好现柠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布院领。 她就那樣靜靜地躺著,像睡著了一般够吩。 火紅的嫁衣襯著肌膚如雪比然。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天周循,我揣著相機(jī)與錄音强法,去河邊找鬼。 笑死湾笛,一個(gè)胖子當(dāng)著我的面吹牛拟烫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迄本,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼硕淑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嘉赎?” 一聲冷哼從身側(cè)響起置媳,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎公条,沒(méi)想到半個(gè)月后拇囊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡靶橱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年寥袭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了路捧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡传黄,死狀恐怖杰扫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膘掰,我是刑警寧澤章姓,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站识埋,受9級(jí)特大地震影響凡伊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窒舟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一系忙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惠豺,春花似錦笨觅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杀糯。三九已至扫俺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間固翰,已是汗流浹背狼纬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骂际,地道東北人疗琉。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像歉铝,于是被迫代替她去往敵國(guó)和親盈简。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容