Android获取本机蓝牙地址
16lz
2022-06-02
从Android6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:00:00:00:00:00,部分从低版本升级到6.0的手机也还是可以获取真实的MAC地址的。下面通过反射的方式
获取蓝牙地址:
public static String getBtAddressByReflection() { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Field field = null; try { field = BluetoothAdapter.class.getDeclaredField("mService"); field.setAccessible(true); Object bluetoothManagerService = field.get(bluetoothAdapter); if (bluetoothManagerService == null) { return null; } Method method = bluetoothManagerService.getClass().getMethod("getAddress"); if(method != null) { Object obj = method.invoke(bluetoothManagerService); if(obj != null) { return obj.toString(); } } } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return null; }
更多相关文章
- Android时间获取之——Date、String、Long三种日期类型之间的相
- [Network]Android(安卓)N Ethernet新IP获取机制—IpManager
- Android(安卓)MotionEvent 坐标获取
- android沉浸式状态栏的实现
- Android(安卓)屏幕截图
- android之从Bmob获取数据显示在ListView中
- Android(安卓)利用url获取Bitmap图片
- FAQ00366]如何使Android应用程序获取系统权限
- Android中获取网页表单中的数据实现思路及代码