Программное чтение состояния отладки в манифесте

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

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

person JPM    schedule 11.11.2011    source источник


Ответы (1)


я использую 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;     
    }
person andreasg    schedule 11.11.2011
comment
Другой ответ - всего одна строка и делает то же самое. - person JPM; 11.11.2011