クラッシュレポートをテキストファイルに書き出すところまでは行ったので
後はファイルが有るかどうかチェックして送信するだけです。
私は自分のサーバを持っていないのでメールで送ることにしました。
いくつかのメソッドについては説明は省略しますが、動きはメソッド名通りです。
アプリ内ストレージに保存したレポートファイルを SD に移して
他のアプリで添付できるようにします。
直接 SD に保存しても良いのだけれど
startActivity した直後 delete してるとメール送信時には消えてしまうので注意です。
File file = getFileStreamPath(this, CrashExceptionHandler.FILE_NAME); if(file.exists() && checkSdCardStatus()){ String attachmentFilePath = Environment.getExternalStorageDirectory().getPath() + File.separator + getString(R.string.appName) + File.separator + CrashExceptionHandler.FILE_NAME; File attachmentFile = new File(attachmentFilePath); if(!attachmentFile.getParentFile().exists()){ attachmentFile.getParentFile().mkdirs(); } file.renameTo(attachmentFile); Intent intent = createSendMailIntent(CrashExceptionHandler.MAILTO, getString(R.string.reportMailTitle), getString(R.string.reportMailBody)); intent = addFile(intent, attachmentFile); Intent gmailIntent = createGmailIntent(intent); if(canIntent(this, gmailIntent)){ startActivity(gmailIntent); }else if(canIntent(this, intent)){ startActivity(Intent.createChooser(intent, getString(R.string.sendCrashReport))); }else{ showToast(this, R.string.mailerNotFound); } file.delete(); }