2012-01-27 4 views
1

J'ai une question à propos de trouver si votre application est en mode release ou en debug. Je dois trouver un moyen de détecter automatiquement le mode applications avec une fonction. Pour l'instant j'utilise un moyen simple en déclarant un boolean qui chaque fois que je dois changer true/false. Mais parfois moi, ou l'autre développeur peut oublier de le changer. En fait, j'ai besoin de cela parce que, j'utilise un gestionnaire d'erreur dans mon application qui envoie à notre serveur des exceptions qui ne sont pas prises. Et je ne veux pas faire cela en mode debug.Version de débogage/lancement Android de l'application

Y a-t-il un moyen de détecter cela avec certaines fonctions que mon application va faire automatiquement, sans utiliser de variables comme moi?

+0

Je ne pense pas que vous pouvez le faire simplement. Vous pouvez essayer de récupérer l'attribut 'android: debuggable' de votre application à partir du manifeste, mais cela, encore une fois, n'est pas une certitude à 100%. –

+0

L'autre alternative serait de récupérer le hachage de la signature de l'apk et de le comparer avec une signature de débogage/relâchement utilisée pour signer votre application. –

+0

Donc je vais devoir m'en tenir à la variable booléenne –

Répondre

1

Il n'y a pas de solution générale mais vous pouvez utiliser isDebuggerConnected. MAIS cette solution déclenchera/affichera les fonctions de débogage si vos utilisateurs connectent leurs téléphones au PC et utilisent ddms eux-mêmes.

Peut-être vous Sould combinez cela avec l'un des contrôles Aleks G a suggéré, et un pop-up Toast message à chaque démarrage qui vous rappelle de désactiver le débogage ;-)

0

Pourquoi ne pas utiliser cette fonction?

if (BuildConfig.DEBUG) { 
    // what shall happen in debug version 
} else { 
    // release version 
} 
Questions connexes