以下のように、呼び出し方法を RINGER_MODER_NORMAL (サウンドとバイブレーションをオン) に設定し、バイブレーション設定を VIBRATE_SETTING_OFF (バイブレーションを完全にオフにする) または VIBRATE_SETTING_ONLY_SILENT. (モードがサイレントの場合のみバイブレーションを行う) に個別に設定できます。
着信音の振動をオフにするには:
setVibrateSetting (AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF)
通知のバイブレーションをオフにするには:
setVibrateSetting (AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF)
更新:現在のオーディオ モードのステータスを取得するには
if(getRingerMode ()==AudioManager.RINGER_MODE_NORMAL)
{ if((getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER))==AudioManager.AudioManager.VIBRATE_SETTING_OFF){
Log.d("Ringer Mode is":"ring with no vibraion")
}
else{
Log.d("Ringer Mode is":"ring with vibraion")
}
else if(getRingerMode ()==AudioManager.RINGER_MODE_SILENT){
if((getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER))==AudioManager.AudioManager.VIBRATE_SETTING_OFF){
Log.d("Ringer Mode is":"Silent with no vibraion")
}
else{
Log.d("Ringer Mode is":"Silent with vibraion")
}
}
else{
Log.d("Ringer Mode is":"Silent with vibraion")
}
ドキュメントでは、RINGER_MODE_SILENT モードが振動設定をオーバーライドすると言われています。
PS : DOC get/setVibrateSetting() によると、**メソッドは ** API レベル 16 で廃止されました。注: コードをテストしていません。