美文网首页
iOS 开发连接外设介绍

iOS 开发连接外设介绍

作者: _牙牙 | 来源:发表于2020-01-10 14:09 被阅读0次

故事

公司iOS app 提出一个需求:ipad外接电子秤读取数据。查到一些资料记录一下,只涉及概念知识。

4163668-495d6c36a67a3108.png
图中带MFI字样的表示该连接方式需要硬件集成MFi芯片,做MFi认证。关于什么是MFi认证(苹果MFi认证(apple公司 “Made for iPhone/iPod/iPad”的英文缩写)是苹果公司(Apple Inc.)对其授权配件厂商生产的外置配件的一种标识使用许可。

可以分为三大类:

1.通过网络端口,建立Socket使用TCP/IP协议族进行通信。

天然支持多通道,想要几个通道就建几个socket就行了。它主要有三种方式,
(1)Wi-Fi连接。
优点:简单,不需要集成MFi芯片,只要对应的硬件有无线网卡,然后手机和硬件连接到同一个局域网中就可以使用socket通过网络协议通信了。
缺点:无线连接信号容易受到干扰,不太稳定,容易断开

(2)自建热点共享
需要先打开个人热点共享, 硬件进行热点接入,操作步骤较多,对用户来说学习使用成本较高,并且热点共享要求手机本身的数据移动网络是稳定的,在没有移动数据网络信号的地方,热点无法建立。

(3)NCM,就是把USB端口虚拟成标准的网络端口,然后手机和外设就能通过有线网络直连了,可以理解成手机和外设通过一跟网线连起来了,然后就可以用socket通过TCP,UDP进行通信了。
优点:有线连接,非常稳定,带宽足够;也不依赖移动网络信号;
缺点:需要集成MFI芯片并进行MFI认证,有一定门槛。目前苹果只提到可以在它自己的CarPlay使用,其他硬件并没有说禁止或者允许使用。如果硬件使用NCM跟iOS系统的App通信,可能通过MFI认证是有风险的。

2 .EAP (External Accessory Protocol )外部设备协议

这个是苹果推荐使用的外设连接方式。需要外设集成MFI芯片进行MFI认证。手机端开发相对简单,只要集成 iOS系统提供的一个框架ExternalAccessory.framework,并且在info.plist中配置好协议字符串(Supported external accessory protocols),当iOS 设备通过USB线或者蓝牙连接到对应硬件时,iOS系统会把符合MFI认证要求的外设抽象成了一个流对象,App通过指定的协议字符串来创建一个EASession类的实例来访问到该流对象,就能通过NSInputStream和NSOutputStream跟硬件件进行通信了。它有两种模式
(1)EASession的模式,它带宽相对较低,但是允许同时通过多个协议字符串创建多个会话,也就是说直接支持多个通道;
(2)Native Transport的模式
优点:带宽足够大,理论值是100MB以上,
缺点:不支持多通道,如果业务层需要支持多数据通道的话需要App自己进行通道的复用与拆分,并且Native Transport需要iPhone工作在USB host模式,硬件需要支持USB 模式切换。

关于如何使用EAP跟外部设备进行通信,可以参考苹果官方的Demo进行入门和学习。

3.BLE,低功耗蓝牙

iOS7.0以后才支持的连接方式。
优点:不需要集成MFI芯片做认证,功耗低,手机端开发也相对简单,集成iOS系统提供的CoreBluetooth.framework就行。
缺点:带宽很低,一般适合于只需要传输少量数据的场景。比如前两年非常火爆的各种所谓智能硬件,像智能水杯,智能体重计,运动手环等,都是采用这种连接方式。

参考链接:http://www.cocoachina.com/bbs/read.php?tid-1689738.html

相关文章

  • iOS蓝牙开发(三):App作为外设被连接的实现

    iOS蓝牙开发(三):App作为外设被连接的实现 iOS蓝牙开发(三):App作为外设被连接的实现

  • iOS 开发连接外设介绍

    故事 公司iOS app 提出一个需求:ipad外接电子秤读取数据。查到一些资料记录一下,只涉及概念知识。 可以分...

  • iOS - Bluetooth 蓝牙介绍(下)

    回去查看 iOS - Bluetooth 蓝牙介绍(上) 5、外设模式的使用 5.1 App 作为外设被连接的实现...

  • iOS连接外设的代码实现流程

    iOS连接外设的代码实现流程 1. 建立中心角色 2. 扫描外设(discover) 3. 连接外设(connec...

  • iOS 蓝牙开发-连接外设的代码实现

    iOS连接外设的代码实现流程 1. 建立中心角色 2. 扫描外设(discover) 3. 连接外设(connec...

  • iOS-蓝牙4.0使用

    借鉴与刘彦玮的技术博客,谢谢,文章如下:iOS蓝牙开发(一)蓝牙相关基础知识ios连接外设的代码实现BabyBlu...

  • iOS蓝牙开发之连接外设

    分阶段了解: 扫描 连接 发现服务和特征,写入或读取数据 连接类 BTConnectionPool 此类是基于CB...

  • ios之蓝牙开发

    一、项目背景 二、IOS 蓝牙介绍 ios中蓝牙有四个框架,其中两个支持与外设连接。一个是 ExternalAcc...

  • 最简单的iOS蓝牙开发

    iOS端的蓝牙开发,大部分都是采用中心模式,故此文章就详细说说iOS连接外设的代码实现(看了很多蓝牙相关的文章,某...

  • CoreBluetooth

    iOS-BLE蓝牙开发持续更新 - 简书 蓝牙打印小票 一个第三方 IOS BLE4.0蓝牙和外设连接和收发数据的...

网友评论

      本文标题:iOS 开发连接外设介绍

      本文链接:https://www.haomeiwen.com/subject/lwipactx.html