Программно читать состояние отладки в манифесте - PullRequest
5 голосов
/ 11 ноября 2011

Я хочу прочитать состояние отладки в файле манифеста Android, а затем запустить метод или не основываться на этом состоянии. Я вижу, что вы можете прочитать XML-файл и разобрать его, но этот способ кажется не таким элегантным. Есть ли другой способ, эта информация о том, что в Манифесте хранится где-то в объекте Java?

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

Ответы [ 2 ]

17 голосов
/ 11 ноября 2011
boolean DEBUGGABLE = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
2 голосов
/ 11 ноября 2011

Я использую ApplicationInfo.FLAG_DEBUGGABLE для проверки, установлен ли android: debuggable = true. Следующий код скопирован из этой нити

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;     
    }
...