2015-10-16 231 views
3

序言
我工作的Xcode 7.0.1,斯威夫特2获取蓝牙MAC上的iPhone地址

的服务时间(更新日),我试着理解我怎样才能检索到的信息。
我看到有一个框架,CoreBluetooth,也许可以帮助我。 (更新,绝对不是!!)

有什么想法吗? Objective-c/swift/c/C++ .. whatever ..是一样的。

我已经在this answer测试的代码,但打印:

>>> WIFI MAC地址:02:00:00:00:00:00
>>> IPHONE蓝牙MAC地址:02: 00:00:00:00:FFFFFFFF
>>> IPAD 蓝牙MAC地址:02:00:00:00:00:01

关于这一点,我已经阅读官方documentation

在iOS 7及更高版本中,如果您要求输入iOS设备的MAC地址,则 系统将返回值02:00:00:00:00:00。如果您需要 来识别设备,请改用UIDevice 的identifierForVendor属性。 (需要为自己的广告标识 目的应该考虑使用 ASIdentifierManager的advertisingIdentifier属性,而不是应用程序。)

的问题是:如果其他设备可以读我的蓝牙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

Apple不允许开发人员通过唯一的硬件标识符来识别设备。在许多可能影响用户隐私的标识符被滥用之后,它已经这样做了。 – rckoenes

+0

你不能出于隐私的原因。 – Larme

+0

[获取蓝牙低能耗外设的MAC地址]可能重复(http://stackoverflow.com/questions/18973098/get-mac-address-of-bluetooth-low-energy-peripheral) – Magisch

回答

0

正如and the devs on this GitHub issue已经注意到了评议,这是不可能取回你运行它当前设备的MAC地址,即使它有可能由于隐私问题,请从第二个设备读取它。