【问题标题】:Why android hides bluetooth mac address?为什么android隐藏蓝牙mac地址?
【发布时间】:2018-07-05 20:13:27
【问题描述】:
我正在尝试以这种方式获取蓝牙mac地址:
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String address = mBluetoothAdapter.getAddress();
但它总是返回:
02:00:00:00:00:00
为什么?它是一种安全策略吗?
谢谢。
贾科莫
【问题讨论】:
标签:
java
android
android-bluetooth
【解决方案1】:
也许你应该看看this的答案。
答案摘录:
private String getBluetoothMac(final Context context) {
String result = null;
if (context.checkCallingOrSelfPermission(Manifest.permission.BLUETOOTH)
== PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Hardware ID are restricted in Android 6+
// https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id
// Getting bluetooth mac via reflection for devices with Android 6+
result = android.provider.Settings.Secure.getString(context.getContentResolver(),
"bluetooth_address");
} else {
BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter();
result = bta != null ? bta.getAddress() : "";
}
}
return result;
}