Я пытаюсь получить MAC-адрес для Android устройств с помощью Settings.Secure, используя следующий код:Получение адреса Bluetooth через Settings.Secure
String btMac = android.provider.Settings.Secure.getString(getApplicationContext().getContentResolver(), "bluetooth_address");
Это работает для нескольких устройств, которые я пробовал, включая Samsung Galaxy S6/S7/Pixel/Nexus5. Однако на некоторых старых телефонах, таких как HTC One X (4.2.2) и еще одном общем телефоне Android (4.1), строка равна нулю.
Проблемы с версией для Android? Или это проблема сборки вендора, то есть «bluetooth_address» не существует в настройках. Обеспечение для этих сборок. Есть ли в любом случае, чтобы узнать, что доступно в настройках. Обеспечение для этих устройств?
Спасибо.
Редактировать: Может ли это быть потому, что BluetoothManager был введен только в 4.3, а «bluetooth_name» существует в BluetoothManagerService.java, которого не существует до 4.3?
Даже если вы выяснить, почему это происходит, вы обнаружите, что Android 6.0+ не позволяет любому приложению читать любые аппаратные адрес. Не уверен, что вам нужно для этого, но вы должны прочитать больше здесь: https://developer.android.com/training/articles/user-data-ids.html#version_specific_details_identifiers_in_m –
Это действительно работает для Android 6.0+ (тестируется на S7/Pixel/Nexus 5). Он не работает для более старых устройств на 4.1/4.2. Я думаю, что это потому, что BluetoothManager был представлен только в версии 4.3. – user1118764