Получить устройство Mac адрес в Android Nougat и O программным способом

У меня есть приложение, для которого требуется MAC-адрес устройства. Я получаю MAC-адрес в Marshmallow и ниже легко, но проблема с Android-нугой и O. Так как найти Mac.

2 ответа

Изменено с 6.0 и позже: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

Чтобы обеспечить пользователям более надежную защиту данных, начиная с этой версии, Android удаляет программный доступ к локальному идентификатору оборудования устройства для приложений, использующих API-интерфейсы Wi-Fi и Bluetooth. Методы WifiInfo.getMacAddress () и BluetoothAdapter.getAddress () теперь возвращают постоянное значение 02: 00: 00: 00: 00: 00.

Чтобы получить доступ к идентификаторам оборудования соседних внешних устройств через сканирование Bluetooth и Wi-Fi, ваше приложение должно теперь иметь разрешения ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION.

Изменения в поведении в 7.0:

Владельцы устройств могут получить доступ к идентификаторам устройств. Владелец устройства может получить доступ к MAC-адресу Wi-Fi устройства, используя DevicePolicyManagewr.getWifiMacAddress(). Если Wi-Fi никогда не был включен на устройстве, этот метод возвращает значение NULL.

Через час я просто решил проблему.....

DeviceAdminReceiver admin = new DeviceAdminReceiver();
DevicePolicyManager devicepolicymanager = admin.getManager(getApplicationContext());
ComponentName name1 = admin.getWho(getApplicationContext());
if (devicepolicymanager.isAdminActive(name1)){
            String mac_address = devicepolicymanager.getWifiMacAddress(name1);
            Log.e("macAddress",""+mac_address);
}

Рекомендации:

1) Android для работы: https://developer.android.com/about/versions/nougat/android-7.0-changes.html

2) DevicePolicyManger: https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html

3) DeviceAdminReceiver: https://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html

Удачного кодирования....

Другие вопросы по тегам