2015-10-22 4 views
1

Я хочу, чтобы отправить CrashReport моего приложения к нескольким получателям, это возможно без добавления ErrorReporter, только в @ReportCrashes? Если нет, то что может быть возможным решением?отчет аварии АКРА, тправлять на несколько писем

Код:

Спасибо заранее. :)

+1

Возможный дубликат [Как отправить отчеты ACRA в несколько пунктов назначения?] (Http://stackoverflow.com/questions/20901139/how-to-send-acra-reports-to-multiple-destinations) – Rami

+0

Я знаю, что это не ответ на ваш вопрос, но есть хорошая бесплатная библиотека, которая делает все для вас в отношении отчетов о сбоях, см. crashlytics –

ответ

1

Вы должны реализовать собственный отправителя, например:

public class YourOwnSender implements ReportSender { 

    private String emails[]; 
    private Context context; 

    public YourOwnSender(Context context, String[] additionalEmails){ 
    this.email = additionalEmails; 
    this.context = context; 
    } 

    @Override 
    public void send(CrashReportData report) throws ReportSenderException { 
    StringBuilder log = new StringBuilder(); 

    log.append("Package: " + report.get(ReportField.PACKAGE_NAME) + "\n"); 
    log.append("Version: " + report.get(ReportField.APP_VERSION_CODE) + "\n"); 
    log.append("Android: " + report.get(ReportField.ANDROID_VERSION) + "\n"); 
    log.append("Manufacturer: " + android.os.Build.MANUFACTURER + "\n"); 
    log.append("Model: " + report.get(ReportField.PHONE_MODEL) + "\n"); 
    log.append("Date: " + now + "\n"); 
    log.append("\n"); 
    log.append(report.get(ReportField.STACK_TRACE)); 

    String body = log.toString(); 
    String subject = mContext.getPackageName() + " Crash Report"; 

    for(int i=0; i<emails.length; i++) { 
     final Intent emailIntent = new Intent(android.content.Intent.ACTION_SENDTO); 
    emailIntent.setData(Uri.fromParts("mailto", ACRAgetConfig().mailTo(), null)); 
    emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); 
    emailIntent.putExtra(android.content.Intent.EXTRA_BCC, emails); 
    mContext.startActivity(emailIntent); 
    } 
    } 
} 
1

формулировка вашего вопроса предполагает, что вы хотите отправить нескольким получателям по электронной почте. Если это так, то просто запятые разделяют их в атрибуте mailTo. То есть:

@ReportsCrashes(
    mailTo = "******@gmail.com, [email protected]", 
    mode = ReportingInteractionMode.TOAST, 
    resToastText = R.string.crash_toast_text 
) 

Вам не нужно настроить другой ReportSender для этого случая использования.

+0

спасибо, это работает –