Включение и выключение вибрации в программном обеспечении Android

В одном из моих приложений для Android мне нужно включить или отключить вибрацию полностью независимо от режима (т. Е. Тихий или общий или громкий).

В настоящее время я использую следующий код с помощью устаревшей функции setVibrateSetting

// Для включения режима вибрации

audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON); audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON); 

// Для отключения режима вибрации

 audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF); audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF); 

Но мне интересно, есть ли четкий способ сделать это.

И предложения приветствуются 🙂

С уважением, Jujare

Текст устаревания для setVibrateSetting() говорит:

Этот метод должен использоваться только приложениями, которые заменяют общее управление настройками звука или основным телефоном.

Из того, что я понимаю, нет другого варианта глобального включения или отключения вибрации, поэтому, если у вас есть приложение, такое как менеджер профилей звонков, вам, вероятно, необходимо его использовать.

ИМХО, Google использовал отсрочку здесь ненадлежащим образом.

Я использую следующий класс, чтобы скрыть устаревание в одном классе «compat»:

 @SuppressWarnings("deprecation") class AudioManagerCompat { final static int VIBRATE_TYPE_RINGER = AudioManager.VIBRATE_TYPE_RINGER; final static int VIBRATE_TYPE_NOTIFICATION = AudioManager.VIBRATE_TYPE_NOTIFICATION; final static int VIBRATE_SETTING_ON = AudioManager.VIBRATE_SETTING_ON; final static int VIBRATE_SETTING_OFF = AudioManager.VIBRATE_SETTING_OFF; final static int VIBRATE_SETTING_ONLY_SILENT = AudioManager.VIBRATE_SETTING_ONLY_SILENT; static int getVibrateSetting(AudioManager am, int vibrateType) { return am.getVibrateSetting(vibrateType); } static void setVibrateSetting(AudioManager am, int vibrateType, int vibrateSetting) { am.setVibrateSetting(vibrateType, vibrateSetting); } } 

Вот мой код

 switch (position) { case 0: audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); break; case 1: audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); break; case 2: audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF); break; case 3: audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON); break; } 

SetVibrateSetting отлично работает, когда я использую свои связи с Gingerbread и IceCreamSandwich, я разрабатываю его с помощью ICS, однако недавно я обнаружил, что он не работает с Jelly Bean, а getVibrateSetting также не работает. Ожидание лучшего пути ~

Вы можете использовать следующие строки кода:

 Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); vibration.cancel(); 

Проверьте это , я нашел это как первый результат Google. Код:

 if(isVibrate){ Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); vib.vibrate(500); Toast.makeText(this, "vib started", Toast.LENGTH_LONG).show(); } else{ // do nothing } 
Intereting Posts
Как я могу определить, что приложение является подвижным для SD-карты? Скрыть пользовательский интерфейс, если громкость нажата в диалоговом окне Как проверить использование facebook android sdk (graph api) Как узнать, открыто ли мое приложение, когда мне удалось получить push-уведомление Android: смена фонового меню кнопки Android: разместите объявление внизу экрана Android – использовать сканер отпечатков пальцев и шифр для шифрования и расшифровки нескольких строк VerifyError, или с помощью переопределенияПреобразования при сохранении совместимости? Можно ли отключить все прокрутки и масштабирование в веб-браузере Android? Проверка биллинга в приложении для Android Фон панели инструментов становится белым цветом при установке на прозрачный Android RadioButton проблема в Android 4 Максимальный размер приложения платформы android & BADA Команда adb shell: mkdir (для создания каталога) Есть ли какой-либо платежный шлюз, ориентированный на Индию?