2010-11-25 13 views
48

私はアンドロイドによって提供されているLog.javaの上にラッパーを書いています。私のクラスは、ログにいくつかの他のアプリケーションレベルの機能を追加します。androidManifestの "debuggable"値をコードから取得していますか?

ここでは、「debuggable」がandroidManifest.xmlファイルで 'true'または 'false'に設定されているかどうかをコードから確認したいことがあります。

できますか?はいの場合、どうですか?

ありがとうございました。

+0

このラッピングログを覚えておいてください:http://stackoverflow.com/questions/4199563/android-util-log-when-publishing-what-c​​an-i-do-not-do – Blundell

答えて

98

PackageManagerを使用してアプリケーションにApplicationInfoオブジェクトを取得し、FLAG_DEBUGGABLEのフィールドにflagsを確認してください。あなたは今、同じことを達成するために、静的なブールフィールドBuildConfig.DEBUGを使用することができます

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

。このクラスはコンパイル時に生成され、genフォルダに表示されます。

+0

これは正しい方法ですそれをするには私はポストビルドツール17. – jophde

+0

よりもずっと前に.. – Snicolas

+1

これは良い解決策です。受け入れられた答えとは異なり、これはあなたに最終的なフィールドを与えます。こうすることで、そのフラグに依存するデバッグコードが到達不能になり、コンパイラによって取り除かれます。 – Broatian