2015-09-01 3 views
3

Я разрабатываю приложение для Android, которое отображает некоторые из настроек устройства, например, если оно связано с Wi-Fi, мобильными данными, а также тип режима звонка: тихий, вибрирующий и нормальный ,Android L get ring mode type: приоритет и звук

У меня возникли трудности с получением типа режима звонка для андроида L, поскольку для приоритетов и типов звука тип задается как обычно.

У кого-нибудь есть возможное решение для этого, на неучтенных устройствах?

+0

Вы используете класс «AudioManager» для проверки типа мелодии звонка? –

+0

Да, я использую AudioManager. –

+0

Всегда ли он возвращает RINGER_MODE_NORMAL? –

ответ

2

Я нашел решение моей проблемы, однако оно работает только на уровне API 17 и выше.

Я получаю значение из глобального предпочтений дзен режим следующим образом:

Settings.Global.getInt(getContentResolver(), "zen_mode") 

Если возвращенное значение 2, то устройство на молчание, если 1, то режим звонка установлен по приоритету, , если он равен 0, тогда режим звонка будет звучать.

Надеюсь, это поможет некоторым другим разработчикам.

+0

Есть ли константа для получения свойства «zen_mode»? и если я хочу сравнить его с тем, как я это делаю без жестких значений кода, я имею в виду, как это: 'Settings.Global.getInt (getContentResolver(), Class.PROPERTY_STRING) == Class.CONSTANT_WITH_VALUE_0' –

+0

В настройках есть поле. Глобальный, но из-за того, что он скрыт, я мог только получить доступ к нему, указав его имя предпочтения. –

+1

Из документации: public static final String ZEN_MODE = "zen_mode"; public static final int ZEN_MODE_OFF = 0; public static final int ZEN_MODE_IMPORTANT_INTERRUPTIONS = 1; public static final int ZEN_MODE_NO_INTERRUPTIONS = 2; Эти поля также скрыты. –