Android系统。当设备振动水平设置为0时如何振动?

时间:2015-03-05 21:20:23

标签: android android-vibration

我遇到了问题。我需要在一些用户的动作之后做出振动,所以我使用了代码:

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);

但是我遇到了问题。 当我在设备上测试应用程序时,振动级别设置为0,我的应用程序没有振动。

我该如何解决?

谢谢!

2 个答案:

答案 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

希望得到这个帮助。