2015-03-05 2 views
0

J'ai un problème. J'ai besoin de faire une vibration après l'action de certains utilisateurs, donc j'ai utilisé le code:Android. Comment faire des vibrations lorsque le niveau de vibration de l'appareil est réglé sur 0?

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

Mais j'ai un problème. Lorsque je teste l'application sur l'appareil, où le niveau de vibration est réglé sur 0, il n'y a aucune vibration de mon application.

Comment puis-je résoudre ce problème?

Merci!

Répondre

0

En cas l'utilisateur baisse le volume silencieux vibre pas (cela fonctionne également si l'utilisateur définit des vibrations sur désactivé), vous pouvez utiliser ceci:

... 

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

Baissez le volume de silencieux ne provoque pas ce problème . A la place, j'ai remarqué que c'est le champ Notifications dans Setting> Sound> Vibration intensity qui contrôle le niveau de vibration. Voilà pourquoi même AudioManager ne fonctionnerait pas:

private AudioManager myAudioManager; 
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 

Cependant, il y avait une similar question et la réponse à c'était d'utiliser Immersion Haptic SDK.

Espérons cette aide.