由于AudioManager.RINGER_MODE_VIBRATE
还会使设备静音,您如何打开振动并保持当前音量(例如,如果有来电,手机会振动并播放铃声)?
谢谢!
由于AudioManager.RINGER_MODE_VIBRATE
还会使设备静音,您如何打开振动并保持当前音量(例如,如果有来电,手机会振动并播放铃声)?
谢谢!
我能想到的最简单的方法是使用:
setVibrateSetting(AudioManagerVIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
尽管该方法在 API 16 中已被弃用,但如果您希望更改振动设置而不是您自己的应用程序,我不知道有什么好的替代方法。
只需确保振铃器模式也已打开AudioManager.RINGER_MODE_NORMAL
。
当然,您也可以将振铃模式设置为AudioManager.RINGER_MODE_NORMAL
并调出设置页面供用户手动更改振动设置。
查看此代码,
// Get instance of Vibrator from current Context
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Start immediately
// Vibrate for 200 milliseconds
// Sleep for 500 milliseconds
long[] pattern = { 0, 200, -1 };
// The "0" means to repeat the pattern starting at the beginning
// CUIDADO: If you start at the wrong index (e.g., 1) then your
// pattern
// will be off --
// You will vibrate for your pause times and pause for your vibrate
// times !
vb.vibrate(pattern, 0);
停下来,打电话
vb.cancel();
注意:vb.cancel() 不应在 vb.vibrate(pattern, 0); 之后立即调用。