Android: как переключаться между настройками вибрации (всегда, никогда, только в беззвучном режиме, только когда не в беAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android: как переключаться между настройками вибрации (всегда, никогда, только в беззвучном режиме, только когда не в бе

Сообщение Anonymous »

Проблема

Поиск методов переключения между:
  • Всегда
  • Никогда
  • Только в тихом режиме
  • Только когда не в тихом режиме
Эти варианты находятся по путь --- Меню >> Настройки >> Звук >> Вибрация --- на телефоне.

Это легко изменить с помощью навигации по телефону (кстати, у меня телефон Motorola Atrix 2 с Android 2.3.3), но я еще не встречал методов для использования в своем коде.

Код

У меня в основном есть кнопки, которые должны управлять вибрацией настройки при нажатии. Здесь показана одна из этих кнопок:

Код: Выделить всё

    bSilent.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);

Toast.makeText(getBaseContext(), "Set to Never", Toast.LENGTH_SHORT).show();
}
});
audioManager определяется где-то над этим кодом как:

Код: Выделить всё

final AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
Android предлагает AudioManager.setVibrateSetting, но сейчас он устарел. Вместо этого они ссылаются на метод getRingerMode.

http://developer.android.com/reference/ ... nager.html

Однако использование этих функций (и любой их комбинации) не позволяет эффективно переключаться между четырьмя настройками вибрации. Например, если я начну с «Всегда», мне будет невозможно добраться до «Никогда». Все комбинации методов вибрации будут переключаться только между «Всегда» и «Только в беззвучном режиме». С другой стороны, если я начну с «Никогда», предлагаемые методы будут переключаться только между «Никогда» и «Только когда не в беззвучном режиме».

Поэтому предположим, что я хочу, чтобы мой телефон работал в беззвучном режиме и чтобы он вибрировал. Затем я решаю, что не хочу, чтобы он больше вибрировал. Я не могу переключиться с «Всегда» или «Только в автоматическом режиме» на «Никогда».

Предыдущие решения и публикации

Я знаю, что это своего рода дубликат сообщения на StackOverflow. Проблема уже поднималась ранее...

Здесь: Настройки вибрации на Android 2.2

И (совсем недавно) здесь: Изменение настроек вибрации

Первая из ссылок дает «ответ». LuTHieR вступает в дискуссию и в конце концов находит выход самостоятельно. Он ссылается на сайт:

https://android.googlesource.com/platfo ... tings.java

и говорит: «Я просмотрел исходный код класса com.android.settings.Settings и скопировал часть методов, которые включают и отключают вибрировать".

Я внимательно просмотрел этот сайт и не смог найти то, что он сделал. Может ли кто-нибудь разъяснить свое решение?

Вопрос

Есть ли у кого-нибудь способ точного переключения между «Всегда», «Никогда», «Только в тихом режиме» и «Только когда не в тихом режиме»?

Подробнее здесь: https://stackoverflow.com/questions/113 ... n-silent-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»