Android 安卓。当设备振动水平设置为0时,如何进行振动?

Android 安卓。当设备振动水平设置为0时,如何进行振动?,android,android-vibration,Android,Android Vibration,我有个问题。我需要在一些用户的操作后进行振动,因此我使用了以下代码: Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); v.vibrate(300); 但我有个问题。 当我在设备上测试应用程序时,振动级别设置为0,我的应用程序没有振动 我怎样才能修好它 谢谢 如果用户将音量调低到静音不振动(如果用户将振动设置为禁用,该功能也会起作用),则可以使用此功能: ... AudioManager a

我有个问题。我需要在一些用户的操作后进行振动,因此我使用了以下代码:

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);
但我有个问题。 当我在设备上测试应用程序时,振动级别设置为0,我的应用程序没有振动

我怎样才能修好它


谢谢

如果用户将音量调低到静音不振动(如果用户将振动设置为禁用,该功能也会起作用),则可以使用此功能:

    ...

    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);
            }
   ...

将音量调低到静音不会导致此问题。相反, 我注意到是
设置>声音>振动强度
中的
通知
字段控制振动级别。 这就是为什么AudioManager都不能工作的原因:

private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
然而,有一个解决方案,答案是使用

希望这有帮助