2011-11-11 6 views
5

Quiero leer el estado de depuración en el archivo de manifiesto de Android y luego iniciar un método o no basado en ese estado. Veo que puede leer el archivo XML y analizarlo, pero de esa manera no parece tan elegante. ¿Hay alguna otra manera? ¿Es esa información de lo que está en el Manifiesto almacenado en un objeto Java en alguna parte?Programado Leer estado de depuración en Manifiesto

<application android:name=".MyActivity" android:icon="@drawable/myicon" 
    android:label="@string/app_name" android:debuggable="true"> 

Respuesta

17
boolean DEBUGGABLE = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; 
2

utilizo el ApplicationInfo.FLAG_DEBUGGABLE para comprobar si el androide: depurable = true se establece. El siguiente código se copia de este thread

private static Boolean isSignedWithDebugKey = null;  
    protected boolean signedWithDebug() {   
     if(isSignedWithDebugKey == null) {    
      PackageManager pm = getPackageManager();    
      try {     
      PackageInfo pi = pm.getPackageInfo(getPackageName(), 0);     
       isSignedWithDebugKey = (pi.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;    
      }    
      catch(NameNotFoundException nnfe) {     
       nnfe.printStackTrace();     
       isSignedWithDebugKey = false;    
      }   
     }   
     return isSignedWithDebugKey;  
    } 
+1

La otra respuesta es una sola línea y hace lo mismo. – JPM

Cuestiones relacionadas