我有一台Apple兼容的蓝牙设备。
现在,我正在尝试在应用中获取该设备的MAC地址。是否可以借助Apples“外部附件框架”获取蓝牙设备的MAC地址?
我听说以正常方式获取MAC地址是不可能的,但我不明白“外部附件框架”是否足以决定是否可以使用此框架。
答案 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软件创建的任何通信机制提供该信息。