2011-11-11 5 views
5

Androidマニフェストファイルでデバッグ状態を読み取り、その状態に基づいてメソッドを起動するかどうかを設定します。 XMLファイルを読んで解析することができますが、その方法はそれほどエレガントではないようです。別の方法がありますか?マニフェスト内のwhatsの情報がJavaオブジェクトにどこかに保存されていますか?真=デバッグ設定されている:私は、AndroidがあればチェックするためApplicationInfo.FLAG_DEBUGGABLEを使用マニフェストでプログラムでデバッグ状態を読み取る

<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

。 次のコードは、他の答えはただ1行で、同じことをこの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

関連する問題