获取具有苹果"External Accessory framework"的蓝牙设备的MAC地址



我有一个兼容苹果的蓝牙设备。

现在,我正在尝试在应用程序中获取该设备的MAC地址。有可能在苹果的"外部附件框架"的帮助下获得蓝牙设备的MAC地址吗?

我听说以正常方式获取MAC地址是不可能的,但我对"外部附件框架"的理解还不够好,无法决定使用该框架是否可行。

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

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

但它并没有像您在EAAccessory文档中看到的那样被记录下来。苹果可以拒绝你的应用程序,或者这个功能可能会在下一次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"
  )
}

或者混合使用(型号+固件修订版)等

附言:我知道,根据上面的信息,你不知道两个相同设备之间的区别,但取决于你正在开发的应用程序类型,这无关紧要。

希望能有所帮助。

试试这个:

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

但我注意到这只适用于最新的设备。(iPad1的附件不符合密钥"macAddress"的密钥值编码)

查看整个配件字典以获取更多密钥:

NSLog(@"%@", accessory);

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

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

最新更新