Как узнать список констант в настройках Android

Android имеет различные классы настроек, включая Settings.Secure, Settings.System, Settings.Global. Внутри этих классов есть константы. Например, в Android 4.3 и более поздних версиях в Settings.Secure есть «bluetooth_address», который содержит MAC-адрес BT. Его нет в старых версиях Android.

Есть ли способ узнать, какие константы существуют в этих настройках? Я попытался просмотреть исходный код AOSP, и «bluetooth_address» существует в BluetoothManagerService.java, который существует только в версии 4.3 и выше с константой SECURE_SETTINGS_BLUETOOTH_ADDRESS. Я предположил, что могут быть другие настройки безопасности с использованием префикса SECURE_SETTINGS_, но быстрый поиск исходного кода AOSP ничего не дал.


person user1118764    schedule 23.02.2017    source источник
comment
Вы пробовали документы? Settings.Secure, Settings.System, Settings.Global   -  person Mike M.    schedule 23.02.2017
comment
Да, есть, но они не перечисляют все, что есть в источнике, например. bluetooth_address там не существует.   -  person user1118764    schedule 23.02.2017
comment
О, я понимаю, что вы говорите. Виноват.   -  person Mike M.    schedule 23.02.2017
comment
И наоборот, когда я пытаюсь найти в источнике AOSP константы, которые есть в документах (например, ADB_ENABLED), я также ничего не получаю.   -  person user1118764    schedule 23.02.2017


Ответы (1)


Вот список констант

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/provider/Settings.java#L1791-L1878

Изменить: если вам нужен Macaddress Bluetooth, вы можете попробовать это. https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getAddress()

person Sanyam Jain    schedule 24.02.2017
comment
Спасибо, это для Settings.Global, Settings.Secure или Settings.System? Я не вижу bluetooth_address в файле. - person user1118764; 25.02.2017
comment
Да, это для Settings.Global, Settings.Secure или Settings.System. Хотя bluetooth_address присутствует только в BluetoothManagerService.java. - person Sanyam Jain; 25.02.2017
comment
Спасибо. В этом случае предоставленный вами список констант не является исчерпывающим. Существуют ли другие константы, которых нет в Settings.java? В любом случае, я спрашиваю, потому что, как вы сказали, bluetooth_address присутствует только в BluetoothManagerService.java, который присутствует только с версии 4.3. Я пытаюсь найти эквивалентную константу в более старых версиях Android. - person user1118764; 25.02.2017
comment
Чего вы пытаетесь достичь? Может быть, я могу помочь. :D - person Sanyam Jain; 25.02.2017
comment
Спасибо. Как я уже сказал, я хотел бы узнать, есть ли способ получить MAC-адрес Bluetooth из версий Android старше 4.3 из настроек или любым другим способом, который не требует каких-либо дополнительных разрешений. - person user1118764; 27.02.2017
comment
Вы хотите MAC-адрес вашего устройства или устройства, к которому вы подключены? - person Sanyam Jain; 27.02.2017
comment
Мобильное устройство, на котором работает мое мобильное приложение. - person user1118764; 28.02.2017
comment
Проверьте пост еще раз. - person Sanyam Jain; 28.02.2017
comment
Спасибо. BluetoothDevice представляет удаленное устройство. Я пытаюсь получить MAC-адрес мобильного устройства, а не BT-гарнитуры или чего-то подобного. BluetoothAdapter.getDefaultAdapter().getAddress() работает для мобильного устройства, но требует разрешения BLUETOOTH, а также больше не работает (Android теперь будет возвращать поддельный MAC-адрес). - person user1118764; 28.02.2017