5

Mam bibliotekę Android AAR. Jedna zasada bezpieczeństwa, którą chcę narzucić konsumentowi w aplikacji mojej biblioteki, polega na tym, że nie może ona używać mojej biblioteki, gdy jest ona prawdziwa lub apk jest tworzony przy użyciu . Jak mogę to sprawdzić programowo w systemie Android ?Jak sprawdzić typ kompilacji debuggable lub debug w bibliotece Androida?

+0

możesz sprawdzić bibliotekę 'build.gradle', aby wykryć czy debugujesz czy nie, ale w jaki sposób zamierzasz sprawdzić' build.gradle 'konsumenta? – matrix

+0

@KostasDrakonakis to dokładnie ten problem :) –

+0

@FarhadFaghihi, ale jaki jest tego powód? Ważne jest to, że twoja biblioteka nie znajduje się w debugowaniu. Wszyscy rozwijają aplikację w trybie debugowania. –

Odpowiedz

5

istnieje obejście z refleksji w celu uzyskania (nie biblioteki) wartość BuildConfig projektu tak:

/** 
* Gets a field from the project's BuildConfig. This is useful when, for example, flavors 
* are used at the project level to set custom fields. 
* @param context  Used to find the correct file 
* @param fieldName  The name of the field-to-access 
* @return    The value of the field, or {@code null} if the field is not found. 
*/ 
public static Object getBuildConfigValue(Context context, String fieldName) { 
    try { 
     Class<?> clazz = Class.forName(context.getPackageName() + ".BuildConfig"); 
     Field field = clazz.getField(fieldName); 
     return field.get(null); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (NoSuchFieldException e) { 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

Aby uzyskać pole DEBUG, na przykład, po prostu zadzwoń to z biblioteki Activity:

boolean debug = (Boolean) getBuildConfigValue(this, "DEBUG"); 

Nie próbowałem tego jeszcze i nie mogę zagwarantować, że będzie działać cały czas, ale możesz iść dalej !!!

+1

wydaje się być legit. Postaram się poinformować o wyniku. –

+0

Przetestowałem to rozwiązanie i działa. –

+0

cieszę się, że mogę pomóc !!! – matrix

Powiązane problemy