基本信息
源码名称:android崩溃日志保存SDCARD-本地阅读-并发送email
源码大小:3.05M
文件格式:.zip
开发语言:Java
更新时间:2016-04-12
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

android崩溃日志保存SDCARD-本地阅读-并发送email

相关配置在configuration_appinit.xml文件

<?xml version="1.0" encoding="utf-8"?>
<Application-configuration xmlns:android="http://schemas.android.com/apk/res/android">
    <!--是否测试环境-->
	<IsTestEnvironment value="false" />
	<!--是否显示测试Toast-->
	<IsDebugToast value="true" />
	<!--是否显示测试数据-->
	<IsDebugLog value="true" />
	<!--是否使用测试数据-->
	<IsDebugData value="false" />
	<!--是否单元测试-->
	<IsUnitTest value="true" />
    <!--字符编码-->
	<Charset value="utf-8" />
	
    <!--是否在SdCard上生成日志-->
	<IsCreateFileLog value="true" />
	<!--SdCard上生成日志路径-->
	<CreateFileLogPath value="\Log\" />
	
	<!--是否在崩溃时掉以html或者方式打开-->
	<IsOpenSystemCrash value="true" />
	
    <!--是否在崩溃时发送日志到指定邮箱-->
	<IsSendErrorToEmail value="true" />
	<!--发送邮箱的用户名-->
	<SendMailHostUrl value="smtp.qq.com" />
	<!--发送邮箱的用户名-->
	<SendMailUserName value="" />
	<!--发送邮箱的密码-->
	<SendMailPassWord value="" />
	<!--要发送的邮箱-->
	<ReceiveMailUserName value="" />
	
</Application-configuration>
	



  1. package org.lxz.utils.android.debug;  
  2.   
  3. import <a href="http://lib.csdn.net/base/17" class="replace_word" title="Java EE知识库" target="_blank" style="color: rgb(223, 52, 52); font-weight: bold;">java</a>.lang.Thread.UncaughtExceptionHandler;  
  4. import java.text.SimpleDateFormat;  
  5. import java.util.ArrayList;  
  6. import java.util.Date;  
  7. import java.util.List;  
  8.   
  9. import org.lxz.utils.android.info.ApplitionInfo;  
  10.   
  11. import android.annotation.SuppressLint;  
  12. import android.content.Context;  
  13. import android.content.pm.ApplicationInfo;  
  14. import android.content.pm.PackageInfo;  
  15. import android.content.pm.PackageManager;  
  16. import android.content.pm.PackageManager.NameNotFoundException;  
  17. import android.graphics.drawable.Drawable;  
  18. import android.util.Log;  
  19.   
  20.   
  21. /** 
  22.  * 系统崩溃日志 
  23.  * @author Aiushtha 
  24.  */  
  25. @SuppressLint("SimpleDateFormat")  
  26. public class SystemCrashLog implements UncaughtExceptionHandler,Runnable{  
  27.       
  28.       
  29.     /**单例*/  
  30.     private static SystemCrashLog INSTANCE ;  
  31.     /**上下文环境*/  
  32.     private Context mContext;  
  33.     /**错误*/  
  34.     private Throwable ex;  
  35.   
  36.     /**初始化*/  
  37.     public static SystemCrashLog init(Context context) {  
  38.         return INSTANCE=(INSTANCE==null?new SystemCrashLog(context):INSTANCE);  
  39.     }  
  40.     /**构造方法*/  
  41.     public SystemCrashLog(Context ctx) {  
  42.         mContext = ctx;  
  43.         Thread.setDefaultUncaughtExceptionHandler(this);  
  44.     }  
  45.     /**捕获异常并处理*/  
  46.     @Override  
  47.     public void uncaughtException(Thread thread, final Throwable ex) {  
  48.         this.ex=ex;  
  49.         LocalLogRunnable  localLogRunnable=new LocalLogRunnable(mContext,ex);  
  50.   
  51.           
  52.         String subject="应用程序" " " "EmailDemo" " " "发生了一个崩溃";  
  53.         StringBuffer sb=new StringBuffer();  
  54.         sb.append("android-id:" ApplitionInfo.getAndroidId(mContext) "\n")  
  55.         .append("android-code:" ApplitionInfo.getVersionCode(mContext) "\n")  
  56.         .append("android-version:" ApplitionInfo.getVersionName(mContext) "\n");  
  57.   
  58.           
  59.         localLogRunnable.run();  
  60.           
  61.         EmailRunnable emailRunnable=new EmailRunnable(mContext,ex);  
  62.         emailRunnable.setSubject(subject);  
  63.         emailRunnable.setBody(sb.toString());  
  64.         emailRunnable.setAttachment(localLogRunnable.getLog_file_path());  
  65.         new Thread(emailRunnable).start();;  
  66.     }  
  67.   
  68.     public String getApplicationName() {   
  69.         PackageManager packageManager = null;   
  70.         ApplicationInfo applicationInfo = null;   
  71.         try {   
  72.             packageManager = mContext.getApplicationContext().getPackageManager();   
  73.             applicationInfo = packageManager.getApplicationInfo(mContext.getApplicationContext().getPackageName(), 0);   
  74.         } catch (PackageManager.NameNotFoundException e) {   
  75.             applicationInfo = null;   
  76.         }   
  77.         String applicationName =    
  78.         (String) packageManager.getApplicationLabel(applicationInfo);   
  79.         return applicationName;   
  80.     }  
  81.     @Override  
  82.     public void run() {  
  83.         // TODO Auto-generated method stub  
  84.           
  85.     }   
  86.    
  87.        
  88.   
  89.   
  90.   
  91. }