iOS連接外設的幾種方式

一般iOS開發(fā)者做APP開發(fā)大部分時候都是通過Http(s)請求跟后臺服務器打交道分苇,做一些信息展示和用戶交互。很少涉及到去跟外部硬件設備連接的開發(fā)蚂斤。隨著近年來車聯(lián)網和物聯(lián)網的興起摘完,智能家居和智能硬件的逐步火熱沼头,越來越多的app被開發(fā)出來,用來跟硬件設備進行來連接解藻,獲取硬件相關信息展示或者發(fā)送指令控制硬件來提供服務老充。故本文就針對iOS的app如何跟外部設備進行連接通信這個問題跟大家交流一下。本文原創(chuàng)螟左,歡迎轉載啡浊,轉載請注明出處,如有不正確的地方懇請各位看官指正胶背。
http://cc.cocimg.com/api/uploads/20160803/1470207112589120.png
可以分為三大類:

  1. 第一類是通過網絡端口巷嚣,建立Socket使用TCP/IP協(xié)議族進行通信,天然支持多通道钳吟,想要幾個通道就建幾個socket就行了廷粒。它主要有三種方式,第一種方式是Wi-Fi連接红且,優(yōu)點是:簡單坝茎,不需要集成MFi芯片,只要對應的硬件有無線網卡直焙,然后手機和硬件連接到同一個局域網中就可以使用socket通過網絡協(xié)議通信了景东。缺點也很明顯:(1)無線連接信號容易受到干擾,不太穩(wěn)定奔誓,容易斷開斤吐;(2)如果硬件使用的場合沒有公共wifi,就需要手機自建熱點共享厨喂,硬件進行熱點接入和措,操作步驟較多,對用戶來說學習使用成本較高蜕煌,并且熱點共享要求手機本身的數(shù)據(jù)移動網絡是穩(wěn)定的派阱,在沒有移動數(shù)據(jù)網絡信號的地方,熱點無法建立斜纪。

需要先打開個人熱點共享贫母;

使用網絡端口的第三種方式是NCM文兑,就是把USB端口虛擬成標準的網絡端口,然后手機和外設就能通過有線網絡直連了腺劣,可以理解成手機和外設通過一跟網線連起來了绿贞,然后就可以用socket通過TCP,UDP進行通信了橘原。它的優(yōu)點是:有線連接籍铁,非常穩(wěn)定,帶寬足夠趾断;也不依賴移動網絡信號拒名;但是它的缺點就是:需要集成MFI芯片并進行MFI認證,有一定門檻芋酌。更變態(tài)的是這么好的一種方式增显,目前蘋果只提到可以在它自己的CarPlay使用,其他硬件并沒有說禁止或者允許使用隔嫡。如果硬件使用NCM跟iOS系統(tǒng)的App通信甸怕,可能通過MFI認證是有風險的。

關于如何使用Socket進行TCP腮恩、UDP連接,推薦github上的開源項目CocoaAsyncSocket温兼。

  1. iOS App連接外部硬件的第二大類是EAP秸滴,全拼是External Accessory Protocol,外部設備協(xié)議募判。這個是蘋果推薦使用的外設連接方式荡含。需要外設集成MFI芯片進行MFI認證。手機端開發(fā)相對簡單届垫,只要集成 iOS系統(tǒng)提供的一個框架ExternalAccessory.framework释液,并且在info.plist中配置好協(xié)議字符串(Supported external accessory protocols),當iOS 設備通過USB線或者藍牙連接到對應硬件時装处,iOS系統(tǒng)會把符合MFI認證要求的外設抽象成了一個流對象误债,App通過指定的協(xié)議字符串來創(chuàng)建一個EASession類的實例來訪問到該流對象,就能通過NSInputStream和NSOutputStream跟硬件件進行通信了妄迁。它有兩種模式寝蹈,一種是叫EASession的模式,它帶寬相對較低登淘,但是允許同時通過多個協(xié)議字符串創(chuàng)建多個會話箫老,也就是說直接支持多個通道;另外一種是Native Transport的模式黔州,這種模式的優(yōu)點是帶寬足夠大耍鬓,理論值是100MB以上阔籽,但是不支持多通道,如果業(yè)務層需要支持多數(shù)據(jù)通道的話需要App自己進行通道的復用與拆分,并且Native Transport需要iPhone工作在USB host模式伦仍,硬件需要支持USB 模式切換色徘。

關于如何使用EAP跟外部設備進行通信,可以參考蘋果官方的Demo進行入門和學習项贺。

  1. 第三大類就是BLE,低功耗藍牙峭判,是iOS7.0以后才支持的連接方式开缎。它的優(yōu)點是不需要集成MFI芯片做認證,功耗低林螃,手機端開發(fā)也相對簡單奕删,集成iOS系統(tǒng)提供的CoreBluetooth.framework就行。缺點是:帶寬很低疗认,一般適合于只需要傳輸少量數(shù)據(jù)的場景完残。比如前兩年非常火爆的各種所謂智能硬件横漏,像智能水杯谨设,智能體重計,運動手環(huán)等缎浇,都是采用這種連接方式扎拣。

關于如何使用BLE進行硬件連接,可以參考github的一個小開源項目(https://github.com/luoxubin/BlueTooth4.0)素跺。

總結一下二蓝,圖中帶MFI字樣的表示該連接方式需要硬件集成MFi芯片,做MFi認證指厌。關于蘋果的MFI認證刊愚,對iOS開發(fā)中來說其實是一個比較陌生并且繁瑣的topic,原因如下:

(1)網上鮮有資料踩验,Google基本上查不到鸥诽。 因為MFi認證是由硬件生產商主導進行的,蘋果首先對硬件生產商的實力(質量晰甚,信譽衙传,生產規(guī)模)有很苛刻的要求,滿足要求的才有進行MFI認證的資格厕九。滿足MFi認證資格要求的硬件生產商蓖捶,提交了MFi產品計劃后才能得到蘋果MFi開發(fā)的官方文檔,這個文檔是帶水印的扁远,不允許外泄俊鱼;

(2)MFi認證周期很長刻像,過程也很復雜;

(3)蘋果官方溝通渠道很窄并闲,電話打不通细睡,郵件回復不及時。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末帝火,一起剝皮案震驚了整個濱河市溜徙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌犀填,老刑警劉巖蠢壹,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異九巡,居然都是意外死亡图贸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門冕广,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疏日,“玉大人,你說我怎么就攤上這事撒汉」涤牛” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵睬辐,是天一觀的道長净神。 經常有香客問我,道長溉委,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任爱榕,我火速辦了婚禮瓣喊,結果婚禮上,老公的妹妹穿的比我還像新娘黔酥。我一直安慰自己藻三,他們只是感情好,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布跪者。 她就那樣靜靜地躺著棵帽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪渣玲。 梳的紋絲不亂的頭發(fā)上逗概,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音忘衍,去河邊找鬼逾苫。 笑死卿城,一個胖子當著我的面吹牛,可吹牛的內容都是我干的铅搓。 我是一名探鬼主播瑟押,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼星掰!你這毒婦竟也來了多望?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤氢烘,失蹤者是張志新(化名)和其女友劉穎怀偷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體威始,經...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡枢纠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了黎棠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晋渺。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脓斩,靈堂內的尸體忽然破棺而出木西,到底是詐尸還是另有隱情,我是刑警寧澤随静,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布八千,位于F島的核電站,受9級特大地震影響燎猛,放射性物質發(fā)生泄漏恋捆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一重绷、第九天 我趴在偏房一處隱蔽的房頂上張望沸停。 院中可真熱鬧,春花似錦昭卓、人聲如沸愤钾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽能颁。三九已至,卻和暖如春倒淫,著一層夾襖步出監(jiān)牢的瞬間伙菊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留占业,地道東北人绒怨。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像谦疾,于是被迫代替她去往敵國和親南蹂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內容