アプリケーションがデバイスのサウンド設定を尊重するように、バイブレーターの適切な設定を取得する必要があります。次のコードでは、バイブレーターがオフの場合(私の電話で音量を下げると、ボリュームがオフでバイブレーターがオフの状態であり、ボリュームがオフのときにバイブレーターがオンの状態です)。電話が振動しないように設定されている場合 (このデバイスに電話をかけることによって確認されます)、バイブレーターがオンになっていると見なされます。
AudioManager audioManager = (AudioManager) PingerApplication.getInstance().getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
int vibrationSetting = audioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION);
boolean vibrate;
switch(vibrationSetting) {
case AudioManager.VIBRATE_SETTING_ON:
vibrate = true;
break;
case AudioManager.VIBRATE_SETTING_OFF:
vibrate = false;
break;
case AudioManager.VIBRATE_SETTING_ONLY_SILENT:
vibrate = (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE);
break;
default:
vibrate = false;
}
私は何か間違ったことをしていますか?バイブレーション設定は常にAudioManager.VIBRATE_SETTING_ON