package info.androiddevice.deviceinventory; import android.content.Context; import android.content.pm.PackageInfo; import android.os.Build; import java.util.HashMap; import java.util.LinkedHashMap; public class Error { String packagename; String versionname; String versioncode; String model; String androidversion; String board; String device; String brand; String stacktrace; public Error(PackageInfo packageinfo, Throwable exception) { packagename = packageinfo.packageName; versionname = packageinfo.versionName; versioncode = Integer.toString(packageinfo.versionCode); model = Build.MODEL; androidversion = Build.VERSION.RELEASE; board = Build.BOARD; device = Build.DEVICE; brand = Build.BRAND; stacktrace = getStacktrace(exception); } private String getStacktrace(Throwable exception) { Throwable current = exception; StringBuilder result = new StringBuilder(); do { result.append(current.toString() + "\n"); for(StackTraceElement elem : current.getStackTrace()) { result.append(" at " + elem.toString() + "\n"); } current = current.getCause(); if(current != null) { result.append("\n"); result.append("Caused by:\n"); result.append("\n"); } } while(current != null); return result.toString(); } @Override public String toString() { return "Error{" + "packagename='" + packagename + '\'' + ", versionname='" + versionname + '\'' + ", versioncode='" + versioncode + '\'' + ", model='" + model + '\'' + ", androidversion='" + androidversion + '\'' + ", board='" + board + '\'' + ", device='" + device + '\'' + ", brand='" + brand + '\'' + ", stacktrace='" + stacktrace + '\'' + '}'; } }