У меня есть приложение на android которое я тестирую везде где можно и на некоторых устройствах приложение падает, но этих устройств у меня нету под рукой, и мне соответственно нужно что-бы мне на почту приходили логи ошибки. Я уже задавал два вопроса Определить причину падения приложения на телефоне android // Непонятная проблема программы android y xiaomi. И вот у меня возник закономерный вопрос, что нужно дописать своему приложению что-бы во время падения оно предлагало пользователю отправить логи мне на почту? Как сделать, что-бы эти методы отслеживания логов активировались только в момент падения приложения а не при любом удобном для них (методов) случае. Я буду очень благодарен за любую помощь, советы и само-собой критику от всех кто увидит мой вопрос. Заранее спасибо за помощь.
Ответ
Честно сказать я не пробовал пока-что реализовать код приведенный в первом ответе, пока никто мне не отвечал, я нашел в сети такой способ:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_login);
submitBtn = findViewById(R.id.btn_submit);
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendPost();
}
});
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
handleUncaughtException(thread, ex);
}
});
}
public void handleUncaughtException (Thread thread, Throwable e)
{
String stackTrace = Log.getStackTraceString(e);
String message = e.getMessage();
Intent intent = new Intent (Intent.ACTION_SEND);
intent.setType("message/rfc822");
intent.putExtra (Intent.EXTRA_EMAIL, new String[] {"angoran16@gmail.com"});
intent.putExtra (Intent.EXTRA_SUBJECT, "MyApp Crash log file");
intent.putExtra (Intent.EXTRA_TEXT, stackTrace);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // required when starting from Application
startActivity(intent);
}
данный способ позволил мне отправить с проблемного телефона не именно на почту, а через любое приложение имеющее функцию отправки сообщений, телеграмм или gmail. Короче мне этот способ на данный момент помог отправить код ошибки и теперь у меня есть причина падения. Надеюсь мой ответ поможет кому-то еще с подобной проблемой.
Комментариев нет:
Отправить комментарий