如何知道插入了哪种设备?

时间:2013-10-02 20:07:07

标签: iphone ios objective-c

我正在使用下一代码来了解设备何时插入:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{
     //code...

     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accesoryChanged:) name:EAAccessoryDidConnectNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accesoryChanged:) name:EAAccessoryDidDisconnectNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accesoryChanged:) name:UIScreenDidConnectNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accesoryChanged:) name:UIScreenDidDisconnectNotification object:nil];

     EAAccessoryManager *accessoryManager = [EAAccessoryManager sharedAccessoryManager];
     [accessoryManager registerForLocalNotifications];
 }

- (void)accesoryChanged:(NSNotification*)note;
{
    if(note.name == EAAccessoryDidConnectNotification)
    {
        EAAccessory* accessory = [note.userInfo objectForKey:EAAccessoryKey];
        //code...
    }
    else if(note.name == EAAccessoryDidDisconnectNotification)
    {
        EAAccessory* accessory = [note.userInfo objectForKey:EAAccessoryKey];
        //code...
    }
}

并且:

accessory.name

我可以得到设备的名称,但我找不到办法知道什么样的设备(即:控制器或HDMI适配器)。

有没有办法获取这些信息?

提前致谢。

1 个答案:

答案 0 :(得分:0)

EAAccessory对象具有manufacturermodelNumberserialNumber的属性。您还可以查看protocolStrings数组,以了解设备的功能。

  

在决定是否连接附件时,您应该使用附件声明的协议来做出决定。与附件相关联的协议指示附件能够处理的数据类型。您可以使用其他属性来帮助您决定是否连接到附件,但协议列表应该是您考虑的关键因素。