2

Это не работает для Lollipop.Как включить/отключить виброзвонок для звонков и уведомлений в Android Lollipop?

Включение вибрации:

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); 

Это будет работать фантастически в KITKAT.

+0

Документация предлагает использовать getRingerMode(), но я не знаю, как это сделать на практике: http://developer.android.com/reference/android/media/AudioManager.html#VIBRATE_SETTING_ON – tch

+0

Эта константа устарела в ** API уровне 16. ** Но все еще отлично работает в _Kitkat._ Я хочу реализовать это в _Lollipop._ –

ответ

0

Вы можете контролировать вибрацию на леденец с этим кодом:

Settings.System.putInt(getContentResolver(), "vibrate_when_ringing", vibrate?1:0); 

Также вам нужно добавить это разрешение вашего файла манифеста:

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

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