MAC-адрес bluetooth или wifi устройства Android

Я пишу программу о связи между устройством Android и ПК.

Есть ли способ получить MAC-адрес BLUETOOTH или WiFi устройства Android, когда Bluetooth или WiFi выключены OFF?

Если да, то как?


person xhlwill    schedule 11.10.2011    source источник
comment
Я пробовал WifiManager, но он не может получить macaddress, когда он выключен.   -  person xhlwill    schedule 11.10.2011
comment
Нет. По той же причине вы не можете получить номерной знак машины, которой нет.   -  person Michael Petrotta    schedule 11.10.2011
comment
Однако MAC-адрес уже прошит в аппаратной части телефона при выходе с завода, не так ли? @МайклПетротта   -  person xhlwill    schedule 11.10.2011
comment
Мои извинения. Я думал, вы спрашиваете, как узнать MAC-адрес удаленного устройства.   -  person Michael Petrotta    schedule 11.10.2011
comment
Я хотел бы сделать это более ясным, я хочу написать программу на устройстве Android, чтобы получить MAC-адрес Bluetooth или Wi-Fi (отключен), есть идеи? @МайклПетротта   -  person xhlwill    schedule 12.10.2011
comment
тот же вопрос: stackoverflow.com/questions/6276380/   -  person Andrey Starodubtsev    schedule 17.03.2012


Ответы (2)


это работает для меня с включенным и выключенным Wi-Fi, я не пробовал bluetooth

WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
person ademar111190    schedule 22.05.2012

Да, вы можете получить MAC-адреса, даже если Bluetooth/WiFi отключен.

Получить информацию о Bluetooth так же просто:

BluetoothAdapter.getDefaultAdapter().getAddress(); // MAC address 
BluetoothAdapter.getDefaultAdapter().isEnabled(); // true if ON 

Не нужно использовать Context, ура!

И чтобы завершить ответ.. Состояние WiFi:

final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.getConnectionInfo().getMacAddress(); // MAC address
wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED; // true if ON
person Marcel Bro    schedule 30.06.2015
comment
Просто важно отметить, что после Android M это возвращает 02:00:00:00:00:00 - person zygimantus; 08.10.2016
comment
Да. Они изменили его из-за проблем с безопасностью. - person zygimantus; 30.12.2016