package info.androiddevice.deviceinventory; import android.content.Context; import android.content.Intent; import info.androiddevice.deviceinventory.submission.R; public class Application extends android.app.Application { static Context context = null; @Override public void onCreate() { super.onCreate(); context = this.getApplicationContext(); Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException (Thread thread, Throwable t) { handleUncaughtException (thread, t); } }); } private void handleUncaughtException (Thread thread, Throwable t) { try { android.content.pm.PackageInfo packageinfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("plain/text"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{context.getString(R.string.email)}); intent.putExtra(android.content.Intent.EXTRA_SUBJECT, context.getString(R.string.subject)); intent.putExtra(android.content.Intent.EXTRA_TEXT, new Error(packageinfo, t).toString()); Intent mail = Intent.createChooser(intent, context.getString(R.string.crashtitle)); mail.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(mail); } catch(Exception e) { } finally { Runtime.getRuntime().exit(0); } } public static Context getContext() { return context; } }