Как реализовать ACRA с пользовательским URL
Я хочу отправить сообщение о сбое в фоновом режиме, но не могу отправить, потому что оно использует ACTION_SEND. Я использую код:
formKey = "", mailTo = "abc@gmail.com"
Как я могу сделать 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 и делать все, что захотите (например, отправлять в свою собственную БД).