从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;    }


更多相关文章

  1. Android时间获取之——Date、String、Long三种日期类型之间的相
  2. [Network]Android(安卓)N Ethernet新IP获取机制—IpManager
  3. Android(安卓)MotionEvent 坐标获取
  4. android沉浸式状态栏的实现
  5. Android(安卓)屏幕截图
  6. android之从Bmob获取数据显示在ListView中
  7. Android(安卓)利用url获取Bitmap图片
  8. FAQ00366]如何使Android应用程序获取系统权限
  9. Android中获取网页表单中的数据实现思路及代码

随机推荐

  1. 共享文件夹
  2. 华为ensp链路聚合综合实验
  3. Kafka 原理以及分区分配策略剖析
  4. 单臂路由
  5. 说话时如何把“NO”变成“yes”?
  6. Azure DevTest Lab体验(二)用户测试
  7. 链路追踪 SkyWalking 源码分析 —— Coll
  8. 链路追踪 SkyWalking 源码分析 —— Coll
  9. 分布式作业系统 Elastic-Job-Cloud 源码
  10. 一文学会Vue中间件管道[每日前端夜话0x8C