zoukankan      html  css  js  c++  java
  • Android获取蓝牙地址

    最近做一个项目,发现Android6.0以上的版本获取的蓝牙地址始终为02:00:00:00,
    Google一下发现Android早就封掉了相关接口,于是想到反射的方式去获取Mac地址,在此记录一下

    Android 6.0以下的版本

    直接使用bluetoothadapter.getaddress()

    Android 6.0以上

    private String getBluetoothAddress(BluetoothAdapter adapter) {
            if (adapter == null) {
                return null;
            }
    
            Class<? extends BluetoothAdapter> btAdapterClass = adapter.getClass();
            try {
                Field mServiceField = adapter.getClass().getDeclaredField("mService");
                mServiceField.setAccessible(true);
                Object btManagerService = mServiceField.get(adapter);
                if (btManagerService != null) {
                     return (String) btManagerService.
                                getClass(.getMethod("getAddress").invoke(btManagerService);
                } else {
                    return null;
                }
            } catch (Exception e) {
                e.printStackTrace();
                LogWriter.writeLog(TAG, e.getMessage());
                return null;
            }
    }
    

    PS:有的手机需要在蓝牙已经打开的时候才能获取到

  • 相关阅读:
    lc739
    POJ3280
    6.2
    5.30
    5.28
    5.26
    5.26
    5.25
    从0搭建vue项目
    docker安装jenkins并使用
  • 原文地址:https://www.cnblogs.com/fengwei23/p/9274760.html
Copyright © 2011-2022 走看看