Итак, это мой вопрос, я хочу знать основное устройство, как получить сам 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;
}