Jump to content

Detecter l'état du telephone


chkeff

Recommended Posts

Bonjour tout le monde !

Voila tout est dans le titre ! J'aimerai faire une action en fonction de l'état du telephone, a savoir si il est en mode vibreur ou pas.

J'ai trouvé ce code sur internet mais quelque soit l'état du tel ça me retourne toujours "4":

String systemInfo = Settings.System.VIBRATE_ON;
String info = Settings.System.getString(getContentResolver(), systemInfo);
if(info!=null){
    	Log.i("ROOTGAME", info);
}

Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance !

Link to comment
Share on other sites

Quelque chose de ce genre serait sans doute plus approprié

 AudioManager audioManager = (AudioManager)monContext.getSystemService(Context.AUDIO_SERVICE);
 int val = audioManager.getVibrateSetting( AudioManager.VIBRATE_TYPE_RINGER ); // ou VIBRATE_TYPE_NOTIFICATION

cf la doc

(Vérifier aussi qu'il n'y a pas besoin de permission nécessaire pour accéder à ces settings)

Link to comment
Share on other sites

J'ai utiliser le code et pour tester la valeur j'ai fait ceci:

if(val == AudioManager.VIBRATE_SETTING_ON)

Mais que je soit en vibreur ou non la condition est toujours vraie !

Edit: j'ai aussi essayer avec

if(val == AudioManager.RINGER_MODE_VIBRATE){

Même résultat ...

Link to comment
Share on other sites

As-tu regardé du côté des permissions à ajouter dans le androidManifest.xml ? Peut-être que la permission READ_PHONE_STATE est nécessaire pour connaitre l'état du vibreur (c'est celle qui me semble la plus logique, mais je n'en suis pas certain) ?

Link to comment
Share on other sites

essaye d'utiliser getRingerMode à la place de getVibrateSetting

public int getRingerMode ()

Since: API Level 1

Returns the current ringtone mode.

Returns

The current ringtone mode, one of RINGER_MODE_NORMAL, RINGER_MODE_SILENT, or RINGER_MODE_VIBRATE.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...