日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS App如何连接外设

發布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS App如何连接外设 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

????? 一般iOS開發者做APP開發大部分時候都是通過Http(s)請求跟后臺服務器打交道,做一些信息展示和用戶交互。很少涉及到去跟外部硬件設備連接的開 發。隨著近年來車聯網和物聯網的興起,智能家居和智能硬件的逐步火熱,越來越多的app被開發出來,用來跟硬件設備進行來連接,獲取硬件相關信息展示或者 發送指令控制硬件來提供服務。故本文就針對iOS的app如何跟外部設備進行連接通信這個問題跟大家交流一下,如有不正確的地方懇請各位看官指正。本文原 創,歡迎轉載,轉載請注明出處。

如上圖所示,我把iOS App連接外設的常用方式總結了一下,可以分為三大類:

iOS App連接外部硬件方式第一類是通過網絡端口

建立Socket使用TCP/IP協議族進行通信,天然支持多通道,想要幾個通道就建幾個socket就行了。它主要有三種方式,第一種方式是Wi-Fi連接, 優點是:簡單,不需要集成MFi芯片,只要對應的硬件有無線網卡,然后手機和硬件連接到同一個局域網中就可以使用socket通過網絡協議通信了。缺點也 很明顯:(1)無線連接信號容易受到干擾,不太穩定,容易斷開;(2)如果硬件使用的場合沒有公共wifi,就需要手機自建熱點共享,硬件進行熱點接入, 操作步驟較多,對用戶來說學習使用成本較高,并且熱點共享要求手機本身的數據移動網絡是穩定的,在沒有移動數據網絡信號的地方,熱點無法建立。

使用網絡端口的第二種方式是USB熱點共享,這個其實跟Wi-Fi中的熱點共享非常類似,也不需要集成MFI芯片,區別就是USB線共享熱點,走的是有線,不容易受到干擾,更穩定,而且iPhone可以邊使用可以邊充電;缺點也是操作步驟比較復雜,需要先打開個人熱點共享;

使用網絡端口的第三種方式是NCM, 就是把USB端口虛擬成標準的網絡端口,然后手機和外設就能通過有線網絡直連了,可以理解成手機和外設通過一跟網線連起來了,然后就可以用socket通 過TCP,UDP進行通信了。它的優點是:有線連接,非常穩定,帶寬足夠;也不依賴移動網絡信號;但是它的缺點就是:需要集成MFI芯片并進行MFI認 證,有一定門檻。更變態的是這么好的一種方式,蘋果只允許它自己的CarPlay使用,如果硬件使用NCM跟其他app通信,是不能通過MFI認證的。

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

iOS App連接外部硬件方式的第二大類是EAP

EAP全拼是External Accessory Protocol ,外部設備協議。這個是蘋果推薦使用的外設連接方式。需要外設集成MFI芯片進行MFI認證。手機端開發相對簡單,只要集成iOS系統提供的一個框架ExternalAccessory.framework,并且在info.plist中配置 好協議字符串(Supported external accessory protocols),當iOS 設備通過USB線或者藍牙連接到對應硬件時,iOS系統會把符合MFI認證要求的外設抽象成了一個流對象,App通過指定的協議字符串來創建一個 EASession類的實例來訪問到該流對象,就能通過NSInputStream和NSOutputStream跟硬件件進行通信了。它有兩種模式,一 種是叫EASession的模式,它帶寬相對較低,但是允許同時通過多個協議字符串創建多個會話,也就是說直接支持多個通道;另外一種是Native Transport的模式,這種模式的優點是帶寬足夠大,理論值是100MB以上,但是不支持多通道,如果業務層需要支持多數據通道的話需要App自己進 行通道的復用與拆分,并且Native Transport需要iPhone工作在USB host模式,硬件需要支持USB 模式切換。

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

iOS App連接外部硬件方式的第三大類就是BLE

BLE 即低功耗藍牙,是iOS7.0以后才支持的連接方式。它的優點是不需要集成MFI芯片做認證,功耗低,手機端開發也相對簡單,集成iOS系統提供的 CoreBluetooth.framework就行。缺點是:帶寬很低,一般適合于只需要傳輸少量數據的場景。比如前兩年非?;鸨母鞣N所謂智能硬件, 像智能水杯,智能體重計,運動手環等,都是采用這種連接方式。

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

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

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

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

轉載于:https://my.oschina.net/linweida/blog/749318

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的iOS App如何连接外设的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。