我有一个兼容苹果的蓝牙设备。
现在,我正在尝试在应用程序中获取该设备的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软件创建的任何通信机制来提供这些信息。