与附件设备通讯的App需设备支持的协议,这些协议由设备制造商维护,可是自定义或标准协议,标准协议可与其他设备通信,iOS不负责这些协议的维护。
为防止命名空间冲突,推荐使用反DNS形式命名协议,如com.apple.myProtocol
、com.dji.video
、com.dji.protocol
、com.dji.common
。
1、编程步骤
1.1、引入框架与头文件
外部附件框架(ExternalAccessory.framework)为App与附件设备通信提供了桥梁。因此,在Xcode项目中,需要为每个与附件设备通信相关的项目添加ExternalAccessory.framework。
下一步是引入头文件#import <ExternalAccessory/ExternalAccessory.h>
。
1.2、声明App支持的协议
不声明协议直接调用EA框架的类会崩溃。
使用UISupportedExternalAccessoryProtocols
键在Info.plist中声明支持的协议,值为数组,数组的元素为支持的协议,元素的顺序任意且不限数量。这些值只用于判断App与附件设备的通信能力。当App与设备通信时,具体通信协议由我们编程决定。
当附件设备插入iOS设备时,系统才知道App可被新插入的设备启动。若当前已安装的App都没注册协议,则系统可能到App Store去搜索支持新设备声明的协议的App。
UISupportedExternalAccessoryProtocols
对应的值虽说可参考