я сделал BroadcastReceiver, который прослушивает изменения в PHONE_STATE. в методе onReceive я хотел бы отключить системный вибратор. Я пробовал разные подходы, но пока ни один из них не работал.
AudioManager audioManager = (AudioManager)ctx.getSystemService(Context.AUDIO_SERVICE);
systemVibration = audioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
or
Vibrator vib = (Vibrator)ctx.getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
or
System.putInt(ctx.getContentResolver(), System.VIBRATE_ON, 0);
или все вместе.
первый подход с AudioManager действительно меняет системную настройку вибрации, но не влияет на текущую текущую.
есть идеи?
Саймон