我遇到了问题。我需要在一些用户的动作之后做出振动,所以我使用了代码:
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);
但是我遇到了问题。 当我在设备上测试应用程序时,振动级别设置为0,我的应用程序没有振动。
我该如何解决?
谢谢!
答案 0 :(得分:0)
如果用户将音量调低为Silent而不振动(如果用户将振动设置为禁用,它也可以工作),您可以使用:
...
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if (am.getRingerMode() == AudioManager.RINGER_MODE_SILENT)
{
v.vibrate(300);
}
else
{
v.vibrate(500);
}
...
答案 1 :(得分:0)
将音量调低至静音不会导致此问题。代替,
我注意到Notifications
中的Setting> Sound> Vibration intensity
字段控制着振动级别。
这就是为什么AudioManager无法工作的原因:
private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
但是,有一个similar question,答案就是使用Immersion Haptic SDK。
希望得到这个帮助。