Android logcat: отправка записей журнала с устройства по электронной почте
Сценарий
Я выпустил бета-версию приложения для Android нескольким друзьям. Теперь я хотел бы исправить некоторые ошибки, возникшие в течение периода тестирования.
Я установил утилиту отчетов о сбоях сторонних разработчиков, поэтому я могу легко справляться с авариями приложений. Однако есть некоторые ошибочные поведения, которые не вызывают сбоев. В этих случаях я хотел бы проверить журналы приложений и посмотреть, что пошло не так.
Есть ли способ для приложения отправлять свои записи logcat по электронной почте?
Разъяснения
- Существует множество приложений регистрации (android-log-collector, Log Viewer (logcat)), которые могут проверять и показать записи logcat. Однако эти приложения не могут получить доступ к журналам других приложений с Android 4.1.
- Я не против занимать много места в устройстве - эта функция предназначена только для бета-тестеров.
- Решение должно работать без
root
или любых других специальных разрешений.
Ответы
Ответ 1
Вызовите этот метод в onDestroy своей основной деятельности.
public void SendLogcatMail(){
// save logcat in file
File outputFile = new File(Environment.getExternalStorageDirectory(),
"logcat.txt");
try {
Runtime.getRuntime().exec(
"logcat -f " + outputFile.getAbsolutePath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//send file using email
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// Set type to "email"
emailIntent.setType("vnd.android.cursor.dir/email");
String to[] = {"[email protected]"};
emailIntent .putExtra(Intent.EXTRA_EMAIL, to);
// the attachment
emailIntent .putExtra(Intent.EXTRA_STREAM, outputFile.getAbsolutePath());
// the mail subject
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
startActivity(Intent.createChooser(emailIntent , "Send email..."));
}
Ответ 2
Похоже, что RemoteLogger
именно то, что вам нужно
https://github.com/sschendel/RemoteLogger
Захват журнала отладки в файл, который пользователь может легко отправить вам по электронной почте. Это было создано по необходимости для устранения неповторяющейся ошибки, сообщенной пользователем. Чтобы быть ясным, запись была удалена в версию приложения, выпущенную для проверки пользователей на устранение неполадок. Удалено в конечном производственном коде.
Библиотека предоставляет крючки для запуска, остановки, отправки и удаления файла журнала.