2011-11-11 28 views
5

我想讀取Android清單文件中的調試狀態,然後根據該狀態啓動或禁用某個方法。我看到你可以讀取XML文件並解析它,但這種方式看起來並不那麼優雅。有沒有另外一種方法,是否在某個Java對象中存儲了Manifest中的什麼信息?以編程方式讀取清單中的調試狀態

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

回答

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

我使用ApplicationInfo.FLAG_DEBUGGABLE因爲如果Android的檢查:可調試=真設置。 下面的代碼是從這個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

複製對方回答是隻有一行,並做同樣的事情。 – JPM

相關問題