如何从我的应用程序内部通过电子邮件发送android设备的日志文件?
作为错误报告,我想将设备和/或应用程序日志发送到电子邮件帐户。为此,我在视图中准备了一个按钮。有人能帮我吗?我怎样才能检索日志文件如何从我的应用程序内部通过电子邮件发送android设备的日志文件?,android,Android,作为错误报告,我想将设备和/或应用程序日志发送到电子邮件帐户。为此,我在视图中准备了一个按钮。有人能帮我吗?我怎样才能检索日志文件 谢谢这里有一个稍微改进的版本,改编自Ramesh(谢谢)。主要区别在于您自己进行缓冲。很快 private void extractLogToFile() { // Make file name. String fullName = ...; // Extract to file. File file = new File
谢谢这里有一个稍微改进的版本,改编自Ramesh(谢谢)。主要区别在于您自己进行缓冲。很快
private void extractLogToFile()
{
// Make file name.
String fullName = ...;
// Extract to file.
File file = new File (fullName);
InputStreamReader reader = null;
FileWriter writer = null;
try
{
// get input stream
String cmd = "logcat -d -v time";
Process process = Runtime.getRuntime().exec(cmd);
reader = new InputStreamReader (process.getInputStream());
// write output stream
writer = new FileWriter (file);
char[] buffer = new char[10000];
do
{
int n = reader.read (buffer, 0, buffer.length);
if (n == -1)
break;
writer.write (buffer, 0, n);
} while (true);
reader.close();
writer.close();
}
catch (IOException e)
{
if (writer != null)
try {
writer.close();
} catch (IOException e1) {
}
if (reader != null)
try {
reader.close();
} catch (IOException e1) {
}
e.printStackTrace();
return;
}
}
您可以查看ok,而不是构建自己的,但我希望能够始终发送文件。这就是为什么我想手动完成这项工作的原因。这项工作从未得到谷歌的支持,而且从Android 4.1开始就被积极阻止。下面的答案中显示的技术最多只能在Android 4.1+上提供您自己的日志文件条目。您的示例中的变量log可能与之重复?我如何通过电子邮件发送这些内容呢?它不起作用,我用上面的代码尝试了它,并使用了一个StringBuffer作为log变量。此StringBuffer的内容为0,因此未将任何内容写入我的日志。知道为什么吗?找到了,忘了添加到我的清单上
private void extractLogToFile()
{
// Make file name.
String fullName = ...;
// Extract to file.
File file = new File (fullName);
InputStreamReader reader = null;
FileWriter writer = null;
try
{
// get input stream
String cmd = "logcat -d -v time";
Process process = Runtime.getRuntime().exec(cmd);
reader = new InputStreamReader (process.getInputStream());
// write output stream
writer = new FileWriter (file);
char[] buffer = new char[10000];
do
{
int n = reader.read (buffer, 0, buffer.length);
if (n == -1)
break;
writer.write (buffer, 0, n);
} while (true);
reader.close();
writer.close();
}
catch (IOException e)
{
if (writer != null)
try {
writer.close();
} catch (IOException e1) {
}
if (reader != null)
try {
reader.close();
} catch (IOException e1) {
}
e.printStackTrace();
return;
}
}