在iPhone上获取蓝牙MAC地址

时间:2015-10-16 08:42:33

标签: c++ objective-c c swift bluetooth

序言
我正在使用Swift 2

开发Xcode 7.0.1

我尝试了解如何检索此信息的小时数(更新,天数) 我已经看到有一个框架,CoreBluetooth,也许可以帮助我。 (更新,绝对不是!!)

有什么想法吗? Objective-c / swift / c / c ++ ..无论是......都是一样的。

我已在this answer中测试代码但打印:

  

>>> WIFI MAC ADDRESS:02:00:00:00:00:00
    >>>   IPHONE BLUETOOTH MAC地址:02:00:00:00:00:ffffffff
   >>> IPAD   BLUETOOTH MAC ADDRESS:02:00:00:00:00:01

关于此,我已阅读官方documentation

  

在iOS 7及更高版本中,如果您要求提供iOS设备的MAC地址,   系统返回值02:00:00:00:00:00。如果你需要   识别设备,使用UIDevice的identifierForVendor属性   代替。 (需要自己广告标识符的应用   目的应该考虑使用的advertisingIdentifier属性   而是ASIdentifierManager。)

问题是:如果其他设备可以读取我的蓝牙mac地址,为什么我无法使用?
我认为应该有办法做到这一点,当然。

我也尝试this answer上的片段(和其他答案),但我从来没有得到真正的mac地址。

我知道要知道mac的蓝牙信息我可以在终端上运行:

system_profiler SPBluetoothDataType | sed -n "/Apple Bluetooth Software Version\:/,/Manufacturer\:/p"

要检索mac地址,我只能管道'上一个命令:

egrep -o '([[:xdigit:]]{1,2}-){5}[[:xdigit:]]{1,2}'

我问......我能以编程方式在iPhone上运行此命令吗?

实际上,我已经尝试过这个伪代码:

script = ""
system("system_profiler SPBluetoothDataType > blueInfo.txt")
sleep
read from file "blueInfo.txt" its content

此代码编译和"工作",但在读取不存在的文件时失败。

我正在考虑放弃):

1 个答案:

答案 0 :(得分:0)

正如评论者and the devs on this GitHub issue所指出的那样,即使可以从第二台设备读取它,也无法检索您正在运行它的当前设备的MAC地址。隐私问题。