使用ACRA在静默模式下发送应用程序崩溃电子邮件



我按照设置ACRA的说明使用-

发送电子邮件

通过Email发送报表

然而,我不知道如何在没有任何电子邮件客户端可供用户选择的情况下,在崩溃时无声地向开发人员发送电子邮件。

 @ReportsCrashes(formKey = "",  mailTo = "myemail@xyz.com",
        customReportContent = { ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.CUSTOM_DATA,
 ReportField.STACK_TRACE, ReportField.LOGCAT },
        logcatArguments = { "-t", "200", "-v", "long","test:I" ,"*:D","*:S"},        
        mode = ReportingInteractionMode.SILENT,
        reportType=Type.JSON)

有了上面的设置,我仍然可以选择默认的电子邮件客户端来发送崩溃报告。

如何直接操作?

你不能。Android框架不允许。

您可以通过HTTP来实现,如果您实现了自己的邮件服务,只需要这样做:

创建一个新类:

public class MyCrashSender implements ReportSender {
  @Override
  public void send(CrashReportData report) throws ReportSenderException {
    // make your http post
    // e.g. final HttpPost httpPost = new HttpPost(MY_service_url);
    .
    .
    .
    //httpClient.execute(httpPost);
  }
}

然后在你的activity或者你的Application中当你init acra…

ACRA.init(this);
MyCrashSender crashSender = new MyCrashSender();
ACRA.getErrorReporter().setReportSender(crashSender);

可以在http post中附加设备的主邮箱

如果您只想要静默报告,电子邮件不一定是最佳选择。我建议使用任何后端崩溃收集服务,例如HockeyApp。

通过使用它,您不仅可以获得电子邮件通知(HockeyApp发送到您的邮箱的警报),而且还可以方便地记录崩溃报告(其中包括报告分组,在您的错误跟踪器中创建票据等)

这个库帮助我整合了ACRA和HockeyApp: https://github.com/antoche/android-debug.

您将让它实现您自己的ReportSender。
这个ReportSender实现可以使用java mail api无声地将崩溃报告发送到电子邮件中。这篇文章详细介绍了它:http://androidcocktail.blogspot.in/2015/05/silentemail-crash-report-using-acra.html

相关内容

  • 没有找到相关文章

最新更新