Как реализовать ACRA с пользовательским URL

  1. Я хочу отправить сообщение о сбое в фоновом режиме, но не могу отправить, потому что оно использует ACTION_SEND. Я использую код: formKey = "", mailTo = "abc@gmail.com"

  2. Как я могу сделать URL, где отчеты могут быть сохранены на моем собственном сервере, если можно использовать любой фиктивный URL или любую базу данных с открытым исходным кодом. Пожалуйста, порекомендуйте.

Спасибо

1 ответ

Решение

Используйте этот пользовательский класс

public class AcraCustomSender implements ReportSender {

Context activity;



@Override
public void send(Context context, CrashReportData errorContent) throws ReportSenderException {
    activity=context;
    String crashReport = "";

    try {
        JSONObject object =  errorContent.toJSON();
        Log.e("acra", object.toString());
        crashReport = object.toString();


    }catch (JSONReportBuilder.JSONReportException e) {
        e.printStackTrace();
    }

    //the string crashreport contains your crash log. you can pass it to your own backend.

}

}

создать другой класс для вашего приложения

public class YourApplication extends Application {

@Override
public void onCreate() {
    try {
        ACRA.init(this);
        AcraCustomSender yourSender = new AcraCustomSender();
        ACRA.getErrorReporter().setReportSender(yourSender);
        super.onCreate();
    }catch (Exception ex) {
        ex.printStackTrace();
    }
}
}

Теперь, когда происходит сбой приложения, вы можете получить его в классе AcraCustomSender и делать все, что захотите (например, отправлять в свою собственную БД).

Другие вопросы по тегам