您可以请求按EAAccessoryManager
类(通过registerForLocalNotifications
方法)获取通知。为此,您需要将其添加ExternalAccessory.framework
到您的项目中。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidDisconnect:) name:EAAccessoryDidDisconnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
添加硬件后,您会收到一条通知EAAccessoryKey
,然后可以使用该通知EAAccessory
从附件管理器中获取
- (void)_accessoryDidConnect:(NSNotification *)notification {
EAAccessory *accessory = [[notification userInfo] objectForKey:EAAccessoryKey];
该附件具有许多属性,有助于识别已连接的硬件类型:
NSString* name
NSString* manufacturer
NSString* modelNumber
NSString* serialNumber
NSString* firmwareRevision
NSString* hardwareRevision
NSArray* protocolStrings
我不知道您的音频坞站在这里提供了什么,但应该很容易尝试并希望它对所有设备都是一致的 :-)
如果您对特定设备不感兴趣,但对一类设备(具有特定行为)感兴趣,protocolStrings
应该会有用。该数组由命名协议的字符串组成(在行为意义上,而不是在 ObjectiveC 意义上)。名称被格式化为反向 DNS 字符串 (com.mycompany.myprotocol)。
如果您在UISupportedExternalAccessoryProtocols
应用文件的部分(类型:字符串数组)中提供一个或多个此类协议名称,Info.plist
则如果连接了正确的设备,您的应用将启动。