藍(lán)牙設(shè)備連接----eg:藍(lán)牙打印----(藍(lán)牙連接設(shè)備)

藍(lán)牙實(shí)現(xiàn)打印實(shí)現(xiàn)

藍(lán)牙連接外設(shè)召噩,通過(guò)系統(tǒng)框架實(shí)現(xiàn),步驟如下:判斷是否打開(kāi)藍(lán)牙——> 搜索藍(lán)牙設(shè)備——>連接藍(lán)牙設(shè)備——>掃描藍(lán)牙服務(wù)——>搜索服務(wù)特性——>如果有打印特性 即可實(shí)現(xiàn)打印

判斷藍(lán)牙是否打開(kāi)

? CBCentralManager?*manager = [[CBCentralManageralloc]init];? ? ? ?self.manager?= manager;? ? ? 一旦設(shè)置代理在運(yùn)行程序的時(shí)候捐顷,就會(huì)調(diào)用協(xié)議里一個(gè)必須要完成的方法:? ? ? ?- (void)centralManagerDidUpdateState:(CBCentralManager?*)central;

藍(lán)牙掃描設(shè)備

- (void)scanForPeripheralsWithServices:(nullable NSArray *)serviceUUIDs options:(nullable NSDictionary *)options;

第一個(gè)參數(shù)serviceUUIDs表示掃描帶有相關(guān)服務(wù)的外部設(shè)備,例如填寫(xiě)@[[CBUUIDUUIDWithString:@"需要連接的外部設(shè)備的服務(wù)的UUID"]],即表示帶有需要連接的外部設(shè)備的服務(wù)的UUID的外部設(shè)備,nil表示掃描全部設(shè)備低剔;? ?

?? options 暫時(shí)可以寫(xiě)一個(gè)@{CBCentralManagerScanOptionAllowDuplicatesKey?:@YES}這樣的參數(shù),YES表示會(huì)讓中心設(shè)備不斷地監(jiān)聽(tīng)外部設(shè)備的消息肮塞,NO就是不能

篩選設(shè)備并根據(jù)指定藍(lán)牙設(shè)備名字連接

- (void)centralManager:(CBCentralManager?*)central didDiscoverPeripheral:(CBPeripheral?*)peripheral advertisementData:(NSDictionary?*)advertisementData RSSI:(NSNumber?*)RSSI;? ? ? 在這個(gè)方法里姻锁,我們可以根據(jù)我們獲取到的硬件的某些條件進(jìn)行篩選枕赵,然后連接我們需要連接的外部設(shè)備,例如連接名字帶有A的外部設(shè)備:?

? ? ?if?([peripheral.namehasPrefix:@"A"] ) { ? ? ? ??

? ?[manager?connectPeripheral:peripheraloptions:nil];? ??//連接設(shè)備? ? ? ?

? ?}

判斷連接成功失敗-代理方法---(如果連接成功就可以處理你想處理的事情啦~)

- (void)centralManager:(CBCentralManager?*)central didConnectPeripheral:(CBPeripheral?*)peripheral;(連接成功)? ? ?

? - (void)centralManager:(CBCentralManager?*)central didFailToConnectPeripheral:(CBPeripheral*)peripheral error:(nullableNSError?*)error;(連接失斘涣ァ)

pragma mark ---------------- 發(fā)現(xiàn)服務(wù)的代理 -----------------

(?4拷窜、我們?cè)谶B接成功的方法中開(kāi)始掃描外部設(shè)備的服務(wù)[peripheral?discoverServices:nil];)

?- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(nullable NSError *)error

#pragma mark ---------------- 服務(wù)特性的代理 -------------------- - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(nullable NSError *)error { if (error)

#pragma mark ---------------- 寫(xiě)入數(shù)據(jù)的回調(diào) -------------------- - (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(nullable NSError *)error {

掃描到特征之后,我們就可以拿到相應(yīng)的特征進(jìn)行讀寫(xiě)操作涧黄。? ?

? ?例如進(jìn)行讀取數(shù)據(jù)的操作:

? ?if?([characteristics.UUID.UUIDStringisEqualToString:@"你需要的特征的UUID"]){? ? ? ? ? ?

?//讀取特征數(shù)據(jù)? ? ? ? ? ?

?[peripheral?readValueForCharacteristic:characteristics];? ?

? ? }? ? ? ?

這就讀取了特征包含的相關(guān)信息篮昧,只要讀取就會(huì)進(jìn)入另外一個(gè)方法:? ?

? ? - (void)peripheral:(CBPeripheral?*)peripheral didUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError?*)error;? ? ? ?

在這個(gè)方法里,我們就可以拿到我們需要的數(shù)據(jù)了笋妥。進(jìn)行寫(xiě)的操作是? ? ? ?

[peripheralwriteValue:data類(lèi)型的數(shù)據(jù)?forCharacteristic:使用到的特征?type:CBCharacteristicWriteWithResponse];? ? ? ?最后的type類(lèi)型有兩個(gè)懊昨,分別是CBCharacteristicWriteWithResponse和 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CBCharacteristicWriteWithoutResponse;? ? ?

?選擇第一個(gè)春宣,每往硬件寫(xiě)入一次數(shù)據(jù)都會(huì)進(jìn)入?

? ? ? - (void)peripheral:(CBPeripheral?*)peripheral didWriteValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError?*)error;


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酵颁,一起剝皮案震驚了整個(gè)濱河市嫉你,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躏惋,老刑警劉巖幽污,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異簿姨,居然都是意外死亡距误,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)扁位,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)准潭,“玉大人,你說(shuō)我怎么就攤上這事贤牛⊥锒欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵殉簸,是天一觀的道長(zhǎng)闰集。 經(jīng)常有香客問(wèn)我,道長(zhǎng)般卑,這世上最難降的妖魔是什么武鲁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蝠检,結(jié)果婚禮上沐鼠,老公的妹妹穿的比我還像新娘。我一直安慰自己叹谁,他們只是感情好饲梭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著焰檩,像睡著了一般憔涉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上析苫,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天兜叨,我揣著相機(jī)與錄音,去河邊找鬼衩侥。 笑死国旷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茫死。 我是一名探鬼主播跪但,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼璧榄!你這毒婦竟也來(lái)了特漩?” 一聲冷哼從身側(cè)響起吧雹,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涂身,沒(méi)想到半個(gè)月后雄卷,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛤售,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年丁鹉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悴能。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揣钦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漠酿,到底是詐尸還是另有隱情冯凹,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布炒嘲,位于F島的核電站宇姚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏夫凸。R本人自食惡果不足惜浑劳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夭拌。 院中可真熱鬧魔熏,春花似錦、人聲如沸鸽扁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桶现。三九已至滓窍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巩那,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工此蜈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留即横,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓裆赵,卻偏偏與公主長(zhǎng)得像东囚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子战授,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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