使用ACRA以静默方式发送应用程序崩溃时发送电子邮件

时间:2014-03-18 11:36:57

标签: android acra

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

发送电子邮件

Sending Reports By 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)

通过上述设置,我仍然可以选择默认的电子邮件客户端,以便发送崩溃报告。

如何直接进行?

4 个答案:

答案 0 :(得分:2)

你做不到。 Android框架不允许它。

答案 1 :(得分:1)

您可以通过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);
  }
}

然后在你的活动或你的申请时,你开始acra ...

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

您可以附加到http发布设备的主电子邮件。

答案 2 :(得分:1)

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

通过使用它,您不仅可以收到电子邮件通知(HockeyApp发送到您的邮箱的警报),还可以获得方便的崩溃报告簿记(包括报告分组,错误跟踪器中的故障单创建等)

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

答案 3 :(得分:1)

您将拥有自己的ReportSender 此ReportSender实现可以使用java mail api以静默方式通过电子邮件发送崩溃报告 这篇文章详述了它: http://androidcocktail.blogspot.in/2015/05/silentemail-crash-report-using-acra.html