Cómo comprobar mediante programación si la aplicación se está ejecutando en modo de depuración o no?

Tengo que identificar en algún lugar en mi aplicación que, si mi aplicación se ejecuta en modo de depuración o en vivo. ¿Hay alguna función o pieza de código disponible para comprobar que. Que devuelve true / false en cualquier caso on / off. Si es así, por favor ayúdame. Gracias por adelantado.

La respuesta que @ Imrtality proporciona es la correcta:

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

(Desde esta entrada de blog de Google )

( UPDATE : probablemente el &= debería ser justo & en la expresión anterior, aunque &= es lo que Google tiene en su blog)

Gracias por la cooperación, pero no está funcionando en mi caso

Siento escuchar eso. Por supuesto, ya que explicar lo que "no funciona en mi caso" es algo que elegiste omitir, no puedo ayudarte más.

No está claro de la pregunta si el modo de depuración se refiere a:

  1. Si la aplicación es debuggable o no
  2. Si la aplicación se está depurando (por ejemplo, sobre ADB)

La primera está cubierta por la respuesta de CommonsWare :

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

La segunda es:

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

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

En caso de que por "modo en directo" que significa firmado para su uso en la tienda de juego, puede diferenciar entre los 2 estados mediante la comprobación del valor de BuildConfig.DEBUG. Google ha mostrado un video sobre él aquí

 if (BuildConfig.DEBUG) { // here be thine debug statement } 

Funciona muy bien en eclipse y Android Studio.

Los otros mencionados aquí suelen arrojar excepciones de tiempo de ejecución para mí

  • ¿Cómo mantener la pantalla encendida en Qt para Android?
  • Protege y desprotege el archivo para evitar la eliminación accidental en Android mediante aplicaciones de limpieza con errores
  • Android: cambia el color del botón cuando se hace clic
  • Persistencia de un objeto Parcelable en Android
  • Incorporar Groovy en una aplicación Android Java
  • Java.lang.IllegalArgumentException: El observador es nulo
  • Prácticas recomendadas para la implementación de Android onClickListener
  • Obtener la dirección IP del dispositivo Android cuando está conectado a una red móvil 3G
  • Convertir código OpenCV de C ++ a Java
  • ¿Cuál es el rango de HOUR_OF_DAY?
  • El depurador de Eclipse salta a la declaración de devolución incorrecta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.