38 votes

Comment vérifier par programme si l'application s'exécute en mode débogage ou non?

Je dois identifier à un endroit de mon application, que mon application fonctionne en mode débogage ou en mode direct. Existe-t-il une fonction ou un morceau de code disponible pour vérifier cela? qui retourne vrai / faux dans les deux cas on / off. si oui, aidez-moi. Merci d'avance.

30voto

Mark Carter Points 2009

Il n'est pas clair à partir de la question de savoir si le mode de débogage se réfère à:

  1. Si l'application est debuggable ou pas
  2. Si l'application est actuellement en cours de débogage (par exemple, plus de la BAD)

Le premier est couvert par CommonsWare réponse:

boolean isDebuggable = 0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE);

La seconde est:

boolean isBeingDebugged = android.os.Debug.isDebuggerConnected()

https://developer.android.com/reference/android/os/Debug.html#isDebuggerConnected()

29voto

CommonsWare Points 402670

La réponse de @Im0rtality offre est correcte:

boolean isDebuggable =  ( 0 != ( getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) );

(à partir de cela, Google blog)

(Mise à JOUR: probablement l' &= doit être juste & dans l'expression ci-dessus, si &= est ce que Google a dans son billet de blog)

grâce à la coopération, mais il ne fonctionne pas dans mon cas

Je suis désolé de l'entendre. Bien sûr, depuis expliquant ce qui "ne marche pas dans mon cas" est quelque chose que vous avez choisi d'ignorer, je ne peux pas vous aider davantage.

13voto

android developer Points 20939

Dans le cas où par "mode en direct" vous voulez dire signé pour une utilisation sur le Play Store, vous pouvez différencier les 2 états en vérifiant la valeur de BuildConfig.DEBUG. Google a montré une vidéo à ce sujet ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X