1.获取设备固定的蓝牙mac地址
在原生设置中,获取mac地址会对蓝牙开关状态进行,当前蓝牙开关关闭时会返回空:
@SuppressLint("HardwareIds")
@Override
protected void updateConnectivity() {
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
if (bluetooth != null && mBtAddress != null) {
String address = bluetooth.isEnabled() ? bluetooth.getAddress() : null;
if (!TextUtils.isEmpty(address)) {
// Convert the address to lowercase for consistency with the wifi MAC address.
mBtAddress.setSummary(address.toLowerCase());
} else {
mBtAddress.setSummary(R.string.status_unavailable);
}
}
}
如果项目需要始终返回蓝牙的mac地址,则无需判断bluetooth.isEnabled(),直接返回即可,如下:
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
String macAddress = "";
if (bluetooth != null) {
macAddress = bluetooth.getAddress();
}
2.获取设备wifi固定mac地址
依旧是按照原生设置中获取的方式获取,这块不用修改,直接拿来用就行
final String[] macAddresses = getWifiManager().getFactoryMacAddresses();
String mac = null;
if (macAddresses != null && macAddresses.length > 0) {
mac = macAddresses[0];
}