博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
了解External Accessory Framework之EAAccessory
阅读量:6763 次
发布时间:2019-06-26

本文共 2899 字,大约阅读时间需要 9 分钟。

  最近要做MFI配件的app,找了一下需要External Accessory Framework框架,但是相关的文章貌似不多,所以记录下自己的所学到的一些内容与大家分享。
  那么什么是External Accessory Framework?
  这里引用了Apple Developer内的原文:
 
The External Accessory framework (ExternalAccessory.framework) provides a conduit for communicating with accessories attached to any iOS-based device. App developers can use this conduit to integrate accessory-level features into their apps.
 
  意思简单理解就是:
    External Accessory Framework提供了配件连接iOS设备的通道。开发者可以通过它来开发连接配件的app。
  
  配件可以通过30pin、蓝牙、USB的方式连接iOS设备。
 
  下面就开始简单了解下External Accessory Framework都有些什么吧:
 
1. 它包含三个类:
     EAAccessory
          代表了一个单例的硬件配件对象。
     EAAccessoryManager
          管理所有连接到iPhone的配件。
     EASession
          定义了iPhone app与外部配件的连接和通道。
 
2. EAAccessory类
     EAAccessory类的属性:
          1) Boolean connected read-only     配件是否连接iPhone的标志              
@property (nonatomic, readonly, getter = isConnected) BOOL connected
 
          2) NSUInteger connectionID read-only     连接设备的配件唯一标识              
@property (nonatomic, readonly) NSUInteger connectionID
               EAAccessory Framework提供了可用配件的列表,所以要用NSArray来处理:
              
1 for (EAAccessory *accessory in _accessoryList) {2     if ([disconnectedAccessory connectionID] == [accessory connectionID]) {3         break;4     }5     disconnectedAccessoryIndex++;6 }
 
          3) id<EAAcessoryDelegate> delegate 定义了接收配件状态变化的notifications的对象
               定义一个accController类              
1 @interface accController : NSObject
{2 EAAccessory *_accessory;3 EASession *_session;4 NSString *_protocolString;5 }6 (void)accessoryDidDisconnect : (EAAccessory *)accessory;7 @end
 
          4) NSString firmwareRevision read-only     固件版本信息,注意兼容性              
@property (nonatomic, readonly) NSString *firmwareRevision
         
          5) NNString hardwareRevision read-only     硬件版本信息,同上              
@property (nonatomic, readonly) NSString *hardwareRevison
 
          6) NSString manufacturer read-only     配件所属公司              
@property (nonatomic, readonly) NSString *manufacturer
    
          7) NSString modelNumber read-only     配件设备号              
@property (nonatomic, readonly) NSString *modelNumber
 
          8) NSString name read-only     配件名称,反馈给用户连接了正确的配件              
@property (nonatomic, readonly) NSString *name
 
          9) NSArray protocolStrings read-only     protocols的名称,注意,跟connectionID对应,所以是一个NSArray的对象             
@property (nonatomic, readonly) NSArray *protocolStrings
               代码示例:             
1  - (void)setupAccessoryController : (EAAccessory *)accessory withProtocolString : (NSString *)protocolString {2     [_accessory release];     // 防止断开连接后重连不同配件3     _accessory = [accessory retain];4     [_protocolString release];5     _protocolString = [protocolString copy];6 }
               这段代码可以用在配件连接设备后来创建一个accessory controller对象。
               调用个的方法:              
1 [accessoryController setupAccessoryController : _selectedAccessory withProtocolString : [[_selectedAccessory protocolStrings] objectAtIndex : 0]]; // 只能连接一个设备
         
          10) NSString serialNumber read-only     连接的配件序列号,每个配件唯一              
@property (nonatomic, readonly) NSString *serialNumber
 
     EAAccessory类中的常量:
          EAConnectionIDNone     实质为0,无效的连接,通过与connectionID的比较,可以尝试重连配件或者提示用户断开配件重新连接设备。
 
这第一个类EAAccessory就先了解到这里。

转载于:https://www.cnblogs.com/evangwt/archive/2013/04/04/2999661.html

你可能感兴趣的文章
我的友情链接
查看>>
ZStack实践汇|快照和备份的区别
查看>>
Android显示还不错的EditText
查看>>
ssh 的简介与使用
查看>>
计算机linux系统 第一课
查看>>
关于paramiko使用的问题
查看>>
我的友情链接
查看>>
回首2011年
查看>>
在 MaxCompute UDF 中运行 Scipy
查看>>
8月27日科技联播:滴滴5000亿上市计划或受影响,高德地图暂时下线顺风车业务...
查看>>
网站漏洞修复对phpmyadmin防止被入侵提权的解决办法
查看>>
Redis入门到精通-Nosql介绍
查看>>
以太坊是什么 - 以太坊开发入门指南
查看>>
十二周二次课
查看>>
java使用httpclient时,获取HttpPost对象中的入参
查看>>
宏定义中的特殊参数(#、##、...和__VA_ARGS__)
查看>>
linux反向代理
查看>>
我的友情链接
查看>>
第一次写 java 请求数据库连接
查看>>
Packaging ActiveX Controls
查看>>