在iPhone上获取蓝牙MAC地址

5

前言
我正在使用Xcode 7.0.1和Swift 2。

我已经花费了几个小时(更新,几天)在尝试理解如何检索这些信息。
我看到有一个框架CoreBluetooth,可能会帮助我。(更新,绝对不行!!)

有什么想法吗?Objective-c/swift/c/c++..都可以。

我已经测试过这个答案中的代码,但是输出为:

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

关于此事,我在官方文档上阅读到:

在iOS 7及更高版本中,如果您请求一个iOS设备的MAC地址,则系统返回值为02:00:00:00:00:00。如果您需要识别设备,请使用UIDevice的identifierForVendor属性。(需要自己广告宣传的应用程序应考虑使用ASIdentifierManager的advertisingIdentifier属性。)

问题是:其他设备可以读取我的蓝牙mac地址,为什么我不能呢?
我认为肯定有办法可以实现。

我还尝试了此答案(以及其他答案)中的代码片段,但我从来没有得到真正的mac地址。

我知道如何查看Mac的蓝牙信息,在终端上运行:

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

要仅检索MAC地址,我可以“管道”到上一个命令:

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

我希望你能够帮助翻译这段关于IT技术的内容。以下是需要翻译的内容:

我想知道是否可以通过编程在iPhone上运行此命令?

实际上,我已经尝试过使用以下伪代码:

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

这段代码能够编译并且“运行”,但是读取不存在的文件时会失败。
我正在考虑放弃这个想法。

1
苹果不允许开发者使用唯一的硬件标识符来识别设备。这是因为该标识符被滥用后可能会影响用户的隐私。 - rckoenes
由于隐私原因,您不能这样做。 - Larme
可能是获取蓝牙低功耗外设的MAC地址的重复问题。 - Magisch
1
@Magisch 如果你仔细阅读了我的问题,你绝对不会将它标记为重复问题:我要求的是我的 MAC 地址,而不是外围设备的 MAC 地址。 - Luca Davanzo
@Velthune:研究得很好。 - Ganesh Somani
1个回答

0

正如评论者和这个GitHub问题的开发人员所指出的那样,无法检索当前设备的MAC地址,即使可以从第二个设备上读取它,也由于隐私问题而不可能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接