Android-устройство, как получить Bluetooth Mac, он вещает на внешнее устройство? - PullRequest
0 голосов
/ 04 сентября 2018

Итак, это мой вопрос, я хочу знать основное устройство, как получить сам Bluetooth-Mac. Я пытаюсь использовать adapter.getAddress() и отражать методы, всевозможные способы, но никто не работает правильно ... пожалуйста, сделайте мне одолжение!

BluetoothAdapter.getDefaultAdapter().startLeScan(callback)

BluetoothAdapter.LeScanCallback() {

    @Override
    public void onLeScan(BluetoothDevice deviceTmp, int rssi,
                         byte[] scanRecord) {

        String strDeviceName = deviceTmp.getName();
        if (strDeviceName != null) {
            Log.i(tag, "action_found , " + deviceTmp.getName()  + "mac = "  + deviceTmp.getAddress());

2018 年 9 月 4 日 10:49:15 добавить новый код

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 (Exception e) {
        e.printStackTrace();
    }
    return null;
}
...