使用Apples“External Accessory framework”获取蓝牙设备的MAC地址

时间:2012-02-23 20:47:50

标签: iphone ios external-accessory

我有一台Apple兼容的蓝牙设备。

现在,我正在尝试在应用中获取该设备的MAC地址。是否可以借助Apples“外部附件框架”获取蓝牙设备的MAC地址?

我听说以正常方式获取MAC地址是不可能的,但我不明白“外部附件框架”是否足以决定是否可以使用此框架。

3 个答案:

答案 0 :(得分:5)

不,您无法获得EAAccessory的mac地址。我的意思是,您可以使用以下命令:

NSString *macAddress = [accessory valueForKey:@"macAddress"];

但是你没有记录,因为你可以在EAAccessory documents看到。 Apple可以拒绝您的应用,或者此功能可能会停止处理下一次iOS更新等。

如果您只是想在特定型号的设备上进行自定义操作,在大多数情况下,您可以使用以下信息之一:

<EAAccessory: 0x17445c180> {
  connected:YES
  connectionID:29354791
  name: 23HG YKL CXN
  manufacturer: MANUFACTURER NAME
  modelNumber: 878253-222
  serialNumber: //not always available
  firmwareRevision: 1.0.0
  hardwareRevision: 1.0.0
  protocols: (
    "com.some.protocol",
    "com.some.other.protocol"
  )
}

或者它的混合,如(modelNumber + firmwareRevision)等。

PS:我知道上面的信息,你不知道两个相同的设备之间的区别,但根据你正在开发的应用程序类型,它不会无论如何。

希望它有所帮助。

答案 1 :(得分:1)

试试这个:

NSString *macAddress = [accessory valueForKey: @"macAddress"];

但我注意到这只能用于最新的设备。 (iPad 1的附件不是键值'macAddress'的键值编码)

查看整个附件词典以获取更多键:

NSLog(@"%@", accessory);

答案 2 :(得分:0)

简短的回答是否定的,你不能这样做。

原因是外部附件框架所做的就是设置输入和输出数据流。如果您想从硬件获取MAC地址,硬件必须通过他们为其设备和相关iOS软件创建的任何通信机制提供该信息。