2012-01-27 2 views
1

У меня есть один вопрос об обнаружении приложения в режиме деблокирования или отладки. Мне нужно найти способ автоматического обнаружения режима приложений с помощью функции. На данный момент я использую простой способ объявления boolean, который каждый раз мне нужно изменить true/false. Но иногда я, или другой разработчик, может забыть изменить его. На самом деле мне это нужно, потому что я использую обработчик ошибок в своем приложении, которое отправляет на наш сервер исключения, которые не отображаются. И я не хочу делать это в режиме отладки.Android отладка/выпуск версии приложения

Как я могу обнаружить это с некоторыми функциями, которые мое приложение будет делать автоматически, без использования каких-либо переменных, как я?

+0

Я не думаю, что вы можете сделать это просто. Вы можете попытаться извлечь атрибут «android: debuggable» вашего приложения из манифеста, но это опять же не соответствует 100%. –

+0

Другой альтернативой было бы получение хэша подписи из apk и сравнение его с известными сигнатурами отладки/выпуска, используемыми для подписи вашего приложения. –

+0

Так что мне придется придерживаться логической переменной –

ответ

1

Общее решение отсутствует, но вы можете использовать isDebuggerConnected.

НО это решение также запускает/показывает функции отладки, если ваши пользователи подключают свои телефоны к ПК и сами используют сами ddms.

Может быть, вы sould совместить это с одной из проверок Aleks G предложенных, и всплывающее Toast-сообщения при каждом запуске, который напоминает вам, чтобы отключить отладку ;-)

0

Почему бы не использовать это?

if (BuildConfig.DEBUG) { 
    // what shall happen in debug version 
} else { 
    // release version 
} 
Смежные вопросы