Boo*_*oon 8 external-accessory ios mfi
我正在处理项目的外部配件和MFI,并有这个问题:
将iOS设备连接到MFI硬件后,可以识别哪些第三方硬件属性(如果有)?具体来说,我正在寻找一种通用的方法来确定设备类或功能,而不是必须检查特定的制造商和设备名称,类似于Android可以做到的方式(见下文).这可能吗?
http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.html
最终目标:连接到音频基座时切换布尔值; 忽略其他事件.我不确定iOS可以获得多么精细.iOS可以说出音频底座 和Golf Putter App Cradle之间的区别 吗?MFi是否可以深入了解设备的功能?
我将针对iOS 4.2+.
您可以请求通过EAAccessoryManager类(通过registerForLocalNotifications方法)获取通知.为此,您需要将其添加ExternalAccessory.framework到项目中.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidDisconnect:) name:EAAccessoryDidDisconnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
Run Code Online (Sandbox Code Playgroud)
添加硬件后,您会收到一个通知EAAccessoryKey,其中可以用来EAAccessory从附件管理器获取
- (void)_accessoryDidConnect:(NSNotification *)notification {
EAAccessory *accessory = [[notification userInfo] objectForKey:EAAccessoryKey];
Run Code Online (Sandbox Code Playgroud)
附件具有许多属性,有助于识别已连接的硬件类型:
NSString* name
NSString* manufacturer
NSString* modelNumber
NSString* serialNumber
NSString* firmwareRevision
NSString* hardwareRevision
NSArray* protocolStrings
Run Code Online (Sandbox Code Playgroud)
我不知道你的音频底座在这里提供了什么,但它应该很容易简单地尝试并希望它对所有设备都是一致的:-)
如果您对特定设备不感兴趣,但对某类设备(具有特定行为)不感兴趣,则protocolStrings应该非常有用.该数组由命名协议的字符串组成(在行为方面,而不是在ObjectiveC意义上).名称格式为反向DNS字符串(com.mycompany.myprotocol).
如果您在UISupportedExternalAccessoryProtocols应用程序Info.plist文件的部分(类型:字符串数组)中提供了一个或多个此类协议名称,则在连接了正确的设备时将启动您的应用程序.
| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |