Не отображать меню в режиме выпуска - PullRequest
2 голосов
/ 17 марта 2012

Я хочу, чтобы меню, созданное мной для тестирования записей, находилось в режиме отладки, но когда я выпускаю (запускаю) мое приложение, меню для тестирования записей не должно отображаться. Может ли кто-нибудь помочь мне в этом?

1 Ответ

2 голосов
/ 17 марта 2012

Установите флажок IS_DEBUG_MODE в своем приложении и добавьте в него код ..

Используйте PackageManager, чтобы получить ApplicationInfo объект в вашем приложении, и проверьте поле флагов для FLAG_DEBUGGABLE.

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

Обновление:

Следующее решение предполагает, что в файле манифеста вы всегда устанавливаете android:debuggable=true при разработке и android:debuggable=false для выпуска приложения.

Теперь вы можете проверить значение этого атрибута из своего кода, установив флаг ApplicationInfo.FLAG_DEBUGGABLE в ApplicationInfo, полученном из PackageManager.

Может помочь следующий фрагмент кода:

PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int flags = packageInfo.applicationInfo.flags; 
if ((flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
    // development mode
} else {
    // release mode
}

Итак, в вашем файле манифеста:

Для времени отладки,

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

Для времени выпуска,

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