Android中获取蓝牙适配器的MAC地址

Moh*_*ish 7 java android bluetooth-lowenergy

我正在尝试获取 Android 设备中蓝牙的 MAC 地址。所以我使用以下方法:

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String macAddress = mBluetoothAdapter.getAddress();
Run Code Online (Sandbox Code Playgroud)

返回的地址是02:00:00:00:00:00. 我见过一些问题和帖子说,除非您的应用程序是System Application ,否则不可能再在 android 中获取您的 MAC 地址。

那么如果我真的需要获取手机的MAC地址怎么办?是不可能做到还是怎么办?

注意:我知道这个问题在 SO 上被问了很多次,但大多数答案都已经过时了。

You*_*eed 6

出于安全原因,自 Android 版本 6.0 起,此功能在 Android 上不可用[来源] :-

\n\n
\n

为了向用户提供更好的数据保护,从本版本开始,Android 删除了使用 Wi-Fi 和蓝牙 API 的应用程序对设备\xe2\x80\x99s 本地\n 硬件标识符的编程访问。WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法现在返回常量值 02:00:00:00:00:00。

\n
\n\n

这样做的原因是阻止随机应用程序获取有关手机硬件地址的信息,从而违反隐私/数据保护。

\n\n

我希望这有帮助。

\n


Moh*_*ish 2

优素福·赛义德在另一个答案中所说的是正确的。Android 不再让我们获取 MAC 地址。

简要描述我想要的东西:

假设我有一部 MAC 地址为 X 的电话,附近有另一个 MAC 地址为 B 的设备。当这两个设备彼此靠近时。我能够使用BluetoothDevice 和ScanResult.getDevice() 中的getAddress() 方法获取其他设备的MAC 地址。所以我仍然需要捕获我自己的设备 MAC 地址,以便在后端保存每个用户的 MAC 地址,当我通过蓝牙捕获它时,我知道谁在我附近

这是我为了在附近设备之间发送一些数据而完成的解决方法。

我发现了一个叫做“附近消息 API”的东西。它适用于 Android 和 iOS,并且非常容易实现。现在,我可以捕获附近安装了我的应用程序的设备,并发送由应用程序生成的唯一 ID 来识别用户。