问题
Scenario
I have released a beta version of an Android app to a few friends. Now, I would like to fix some bugs that came up during the test period.
I have set a third-party crash reports utility, so I can easily handle app crashes. However, there are some erroneous behaviours which are not causing crashes. In these cases, I would like to inspect the app logs and see what went wrong.
Is there a way for the app to send its logcat entries via email?
Clarifications
- There are many logging apps (android-log-collector, Log Viewer (logcat)) which can inspect and show logcat entries. However, these apps can't access other apps' logs since Android 4.1.
- I don't mind taking a lot of space in the device - this feature is for beta testers only.
- The solution should work without
root
or any other special permissions.
回答1:
Call this method in onDestroy of your main activity.
public void SendLogcatMail(){
// save logcat in file
File outputFile = new File(Environment.getExternalStorageDirectory(),
"logcat.txt");
try {
Runtime.getRuntime().exec(
"logcat -f " + outputFile.getAbsolutePath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//send file using email
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// Set type to "email"
emailIntent.setType("vnd.android.cursor.dir/email");
String to[] = {"yourmail@gmail.com"};
emailIntent .putExtra(Intent.EXTRA_EMAIL, to);
// the attachment
emailIntent .putExtra(Intent.EXTRA_STREAM, outputFile.getAbsolutePath());
// the mail subject
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
startActivity(Intent.createChooser(emailIntent , "Send email..."));
}
回答2:
It sounds like RemoteLogger
is exactly what you need
https://github.com/sschendel/RemoteLogger
Capture debug logging to a file that user can easily send to you via email. This was created out of necessity to troubleshoot a non-reproducible bug reported by a user. To be clear the logging was dropped into a version of app released to test users to troubleshoot. Removed in final production code.
Library provides hooks to start, stop, send, and delete log file.
来源:https://stackoverflow.com/questions/25765366/android-logcat-send-log-entries-from-device-using-email