2011-08-11 6 views
36

Muszę zidentyfikować w pewnym miejscu w mojej aplikacji, czy moja aplikacja działa w trybie debugowania lub trybie na żywo. Czy jest dostępna jakaś funkcja lub fragment kodu, aby to sprawdzić. która zwraca true/false w obu przypadkach on/off. jeśli tak, proszę, pomóż mi. Z góry dziękuję.Jak sprawdzić programowo, czy aplikacja działa w trybie debugowania, czy nie?

+1

http://stackoverflow.com/questions/4276857/getting-debuggable-value-of-androidmanifest-from-code – Im0rtality

+0

@Imortality ... dzięki do współpracy, ale nie działa w moim przypadku. –

+0

Czym dokładnie jest tryb debugowania i tryb na żywo? – Im0rtality

Odpowiedz

34

Odpowiedzią że @ Im0rtality zapewnia jest prawidłowa:

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

(od this Google blog post)

(UPDATE: prawdopodobnie &= powinny być tylko & w powyższej wypowiedzi, choć &= jest co Google ma na swoim blogu)

dzięki r współpraca, ale nie działa w moim przypadku.

Przykro mi to słyszeć. Oczywiście, ponieważ wyjaśnienie, co "nie działa w moim przypadku" jest czymś, co postanowiłeś pominąć, nie mogę ci pomóc dalej.

+0

Masz literówkę: "getApplicationInfo()", a nie "getApplcationInfo()" – christoff

+0

@christoff: Naprawiono, dzięki! – CommonsWare

+1

Dlaczego masz "& ="? Czy nie powinno to być po prostu '&'? –

12

W przypadku przez „trybie na żywo” masz na myśli podpisane do użytku w Sklepie Play, można rozróżnić 2 stanach sprawdzając wartość BuildConfig.DEBUG. Google pokazała film o tym here

13
if (BuildConfig.DEBUG) { 
    // here be thine debug statement 
} 

działa bardzo dobrze w całej Eclipse i Android Studio.

Pozostali te wymienione tutaj często rzuca wyjątki uruchomieniowe dla mnie

Powiązane problemy