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.
Réponses
Trop de publicités?Il n'est pas clair à partir de la question de savoir si le mode de débogage se réfère à:
- Si l'application est debuggable ou pas
- 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()
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.
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