Android:铃声模式改为静音不会阻止手机振动

Flo*_*Flo 9 android vibration android-audiomanager

我正在尝试使用以下代码行将呼叫的振铃模式更改为RINGER_MODE_SILENT.

AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Run Code Online (Sandbox Code Playgroud)

虽然RINGER_MODE_SILENT的文档说它也应该停止振动,但手机停止响铃会继续振动.

我正在使用SDK 1.6

更新:

由于我还没有找到解决方案,我尝试手动停用振动设置.

am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF );
Run Code Online (Sandbox Code Playgroud)

但这也不能防止电话形式在呼叫进入时振动.

有任何想法吗?

更新2:

今天我试图通过振动物体取消振动来解决问题.

Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
Run Code Online (Sandbox Code Playgroud)

再次,没有成功.现在我已经没有想法,并且问自己是否有可能完全停止振动.

更新3:

当我重新读取Vibrator类文档时,我发现了另一个有趣的事实.文件说:

"如果你的过程退出,你开始的任何振动都会停止."

这听起来好像振动与启动它的过程相关联,并且无法从另一个过程访问.

小智 0

我也很难关闭此功能。

我已经使用过AudioManager setVibrateSetting(),插入AudioManager.VIBRATE_TYPE_NOTIFICATION和0,但收到短信时它仍然振动。

我想知道现在是否有办法完全覆盖此功能。

我认为Vibrator的cancel()方法是针对当前正在进行的振动的。