Aller au contenu

Detecter l'état du telephone


chkeff

Recommended Posts

Posté(e)

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 !

Posté(e)

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)

Posté(e)

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 ...

Posté(e)

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) ?

Posté(e)

Je l'ai rajouté par acquis de conscience mais ça n'as rien changé.

J'arrive à récupérer la valeur, le problème c'est que je ne sait pas à quoi je dois la comparer !

Posté(e)

je viens d essayer et en effet cette valeur est toujours a 1.

ce n est donc pas la bonne manip!

je repart a zero lol

Message envoyé avec l'application Forum FrAndroid

Posté(e)

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.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...