У меня есть приложение, для которого требуется адрес устройства. Я получаю адрес mac в Marshmallow и ниже легко, но проблема с nougat android and O. Итак, как найти mac.
Получайте MAC-адрес устройства в Android Nougat и O программно
Ответ 1
Изменено с версии 6.0 и более поздней версии: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id
Чтобы предоставить пользователям большую защиту данных, начиная с этого релиз, 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.
Ответ 2
Через час я просто решил проблему.....
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 for Work: https://developer.android.com/about/versions/nougat/android-7.0-changes.html
2) DevicePolicyManger: https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#getWifiMacAddress(android.content.ComponentName)
3) DeviceAdminReceiver: https://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html#getWho(android.content.Context)
Счастливое кодирование....