Я пытаюсь изменить режим звонка телефона на RINGER_MODE_SILENT при входящем звонке, используя следующие строки кода.
AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Когда телефон перестает звонить, он продолжает вибрировать, хотя в документации RINGER_MODE_SILENT сказано, что он также должен перестать вибрировать.
Я использую SDK 1.6
UPDATE:
Поскольку я пока не нашел решения, я попытался деактивировать настройки вибрации вручную.
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF );
Но это также не предотвращает вибрацию формы телефона при входящем звонке.
Есть идеи?
ОБНОВЛЕНИЕ 2:
Сегодня я попытался решить проблему, отменив вибрацию с помощью объекта Vibration.
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
Опять без успеха. Теперь у меня заканчиваются идеи и я спрашиваю себя, можно ли вообще остановить вибрацию.
ОБНОВЛЕНИЕ 3:
Я обнаружил еще один интересный факт, перечитав документацию класса Vibrator . В документации сказано:
"Если ваш процесс завершается, любая вибрация
ты начал с остановки. "
Для меня это звучит так, как будто вибрация связана с процессом, который ее запустил, и к нему нельзя получить доступ из другого процесса.