我想在应用程序崩溃时报告一个日志。我想将此报告发送到我的邮件中,我该如何实现这一点,谁能给出一个想法?
提前致谢
您需要的是崩溃报告服务。选项太多:Bugsense、Flurry、TestFlight、Acralizer、Google Analytics for Android、Crittercism等。
当然,捕获所有异常并使用本机电子邮件发送它是个好主意,但这是一个示例应用程序,您可以使用它收集 logcat 的输出并将其发送到电子邮件或消息传递。
https://code.google.com/p/android-log-collector/
您也可以在这里获得一些参考资料
如果您使用 ACRA 来捕获应用程序中的崩溃,那么只需将 ACRA 配置为通过电子邮件发送报告即可。
请参阅https://github.com/ACRA/acra/wiki/AdvancedUsage#sending-reports-by-email
但是,如果您有大量用户(或可能会有),那么我强烈建议您使用托管的崩溃报告服务之一来汇总您的崩溃。因为即使您的应用程序是完美的,它也会因您使用的库中的错误、AOSP 本身、奇怪的设备、奇怪的 Android 实现、奇怪的设备状态而导致崩溃。
试试这个...
Process process = Runtime.getRuntime().exec("logcat -e");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
现在使用意图邮件字符串行...
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"aaa@sdf.com"});
email.putExtra(Intent.EXTRA_SUBJECT, "Crash Report");
email.putExtra(Intent.EXTRA_TEXT, line);
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));
使用此链接更多帮助....
http://www.coderzheaven.com/2011/07/16/how-to-read-logcat-contents-programmatically-in-android/
使用Crittercism时,它们提供了获取带有崩溃报告的 logcat 快照的功能。
在此处查看如何激活它:
https://app.crittercism.com/developers/docs-android#Include_Logcat
这目前在付费计划下可用,请参阅此处以供参考: