ACRA设备过滤用于发送报告

时间:2014-11-30 19:08:26

标签: android acra

我正在开发一个应用程序,我已经实现了ACRA用于日志报告,默认情况下在我的应用配置中实现并激活了它。但是,当我正在开发并进入典型的试错阶段时,我的开发设备发送了许多对我不感兴趣的虚假错误报告(因为我有eclipse的所有信息)。

因为我需要在acralyzer中丢弃大量的报告,所以很烦人。

我想做的是,有办法配置ACRA,对于特定的设备ID,它不会发送报告。某种设备过滤允许我在不填充数据库的情况下进行开发。

我一直浏览advanced use of ACRA的文档,但我找不到它。我想到的唯一选择就是在开发时调用ACRA的构造函数,以便稍后在应用程序发布时激活它。

还有其他选择以更持久的方式解决此问题,避免我修补临时文件吗?

2 个答案:

答案 0 :(得分:1)

使用ACRA OOTB无法做到这一点。

在调用ACRA并忽略特定的Exception实例后,您可以覆盖并修饰DefaultExceptionHandler。但这对我来说听起来有点过分了。

为dev使用不同的Acralyzer实例,或删除/忽略您的dev异常。

我的开发异常总是-SNAPSHOT所以很容易被忽略。

答案 1 :(得分:1)

我正在使用这样的东西作为我的开发报告发件人:

private static class DummyReportsSender implements ReportSender
{
  @Override
  public void send(CrashReportData arg0) throws ReportSenderException
  {
      //Dummy Reporter - nothing send
  }
}

然后在Application#onCreate():

if (BuildConfig.DEBUG)
{
  ACRA.getErrorReporter().setReportSender(new DummyReportsSender());
}