2011-11-11 8 views
5

Chcę przeczytać stan debugowania w pliku manifestu systemu Android, a następnie uruchomić metodę opartą na tym stanie lub nie. Widzę, że możesz odczytać plik XML i przeanalizować go, ale ten sposób wydaje się nie taki elegancki. Czy istnieje inny sposób, czy gdzieś znajduje się informacja o tym, co jest w Manifeście przechowywanym w obiekcie Java?Programowo odczytaj stan debugowania w Manifeście

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

Odpowiedz

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

używam ApplicationInfo.FLAG_DEBUGGABLE na sprawdzenie, czy android: debuggable = true jest ustawiony. Poniższy kod jest kopiowany z tego 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

Druga odpowiedź jest tylko jedna linia i robi to samo. – JPM

Powiązane problemy