2017-02-22 34 views
0

Я пытаюсь получить 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?

+0

Даже если вы выяснить, почему это происходит, вы обнаружите, что Android 6.0+ не позволяет любому приложению читать любые аппаратные адрес. Не уверен, что вам нужно для этого, но вы должны прочитать больше здесь: https://developer.android.com/training/articles/user-data-ids.html#version_specific_details_identifiers_in_m –

+0

Это действительно работает для Android 6.0+ (тестируется на S7/Pixel/Nexus 5). Он не работает для более старых устройств на 4.1/4.2. Я думаю, что это потому, что BluetoothManager был представлен только в версии 4.3. – user1118764

ответ

0

Так с BluetoothManager был введен только в 4.3, это невозможно до Android 4.3

 Смежные вопросы

  • Нет связанных вопросов^_^