4

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

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

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

4

3 回答 3

5

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

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

但它没有记录,正如您在EAAccessory 文档中看到的那样。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:我知道上面的信息,你不知道两个相同设备之间的区别,但取决于你正在开发什么样的应用程序,无论如何都没关系。

希望能帮助到你。

于 2015-07-03T02:35:38.933 回答
1

尝试这个:

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

但我注意到这只适用于最新设备。(iPad 1 的配件与键“macAddress”的键值编码不兼容)

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

NSLog(@"%@", accessory);
于 2013-03-01T16:47:30.693 回答
0

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

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

于 2012-03-13T16:37:19.480 回答