package org.acra.sender;
import android.content.Context;
import org.acra.ReportField;
import org.acra.collector.CrashReportData;
import java.io.File;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import cn.androidy.common.utils.FileUtils;
import cn.androidy.common.utils.StringUtils;
import cn.androidy.logger.core.Log;
import cn.androidy.logger.core.StorageLogPrinter;
import cn.androidy.logger.core.SupportLogger;
public class StorageReportSender implements ReportSender {
private String dir;
private ExecutorService es = Executors.newFixedThreadPool(3);
public StorageReportSender(Context context) {
this.dir = FileUtils.getDiskCacheDir(context, "log/Crash").getAbsolutePath();
}
@Override
public void send(Context context, final CrashReportData errorContent) throws ReportSenderException {
es.execute(new Runnable() {
@Override
public void run() {
if (StringUtils.isEmpty(dir)) {
return;
}
StringBuilder sb = new StringBuilder();
sb.append("********Android系统版本********\n" + errorContent.getProperty(ReportField.ANDROID_VERSION)
+ "\n");
sb.append("************手机品牌***********\n" + errorContent.getProperty(ReportField.BRAND) + "\n");
sb.append("********PACKAGE_NAME********\n" + errorContent.getProperty(ReportField.PACKAGE_NAME) + "\n");
sb.append("******APP_VERSION_CODE******\n" + errorContent.getProperty(ReportField.APP_VERSION_CODE)
+ "\n");
sb.append("******APP_VERSION_NAME******\n" + errorContent.getProperty(ReportField.APP_VERSION_NAME)
+ "\n");
sb.append("**********App启动时间**********\n" + errorContent.getProperty(ReportField.USER_APP_START_DATE)
+ "\n");
sb.append("**********App闪退时间**********\n" + errorContent.getProperty(ReportField.USER_CRASH_DATE)
+ "\n");
sb.append("************闪退Log***********\n" + errorContent.getProperty(ReportField.STACK_TRACE) + "\n");
SupportLogger.getPrinter().appendToLog(SupportLogger.getCommonLogDir()+"/Crash", StorageLogPrinter.getCurrentTimeTag(),sb.toString());
}
});
}
}