功能1:全局捕捉APP发生的致命bug; 功能2:发生异常后重启应用,并发送异常信息到自定义邮箱/自定义处理方法; 功能3:发送文本邮件,附件邮件以及Html邮件。
在项目的build.gradle中添加
allprojects {
repositories {
..
maven { url 'https://www.jitpack.io' }
}
}
在APP的build.gradle中添加
dependencies { .. implementation 'com.gitee.liujiangc:dAssistant:0.1.8' }
public class MyApplication extends Application {
public static synchronized MyApplication getInstance() {
return mInstance;
}
private static MyApplication mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
/** 初始化(如果只需要发送邮件的功能不需要初始化)
* init参数1:邮箱配置信息
* init参数2:错误信息回调
* init可传单个参数也可传null
**/
DeathAssistant.getInstance(getInstance(), true).init(getEmailBean(),null);
}
/**
* 邮箱配置信息
* @return
*/
public EmailBean getEmailBean() {
EmailBean eb = new EmailBean();
eb.setHost("smtp.qq.com");//邮箱服务器地址 这个是QQ邮箱的
eb.setPort("587");//邮箱服务器端口
eb.setApp_name(this.getString(R.string.app_name));//你的app名称
eb.setUser_name("test_user_id");//如果APP有登录模块,可以把用户的id回传
eb.setToEmail("填写你要接收邮件的地址@qq.com");//接收邮件的地址
eb.setFormEmail("填写你要发送邮件的地址@qq.com");//发送邮件的地址
eb.setPassword("填写你申请获得的授权码");//登录第三方客户端邮箱的授权码
// QQ邮箱获取授权码流程:登录网页版QQ邮箱 - 设置 - 账户 - 开启POP3/SMTP服务 - 开启IMAP/SMTP服务 - 生成授权码
// 新申请的QQ需要使用两周以上才能申请授权码
eb.setTitle("错误报告");//邮箱的标题
return eb;
}
}
AndroidManifest.xml
<application android:name=".MyApplication" ..
发送纯文本的邮件
EmailBean eb = MyApplication.getInstance().getEmailBean(); eb.setTitle("纯文本的邮件"); final MailInfo mailInfo = creatMail(eb); mailInfo.setContent("锄禾日当午,汗滴禾下土。"); new Thread(new Runnable() { @Override public void run() { MailSender sms = new MailSender(); sms.sendTextMail(mailInfo); } }).start();
发送带附件的邮件 - 需要获取读取权限
EmailBean eb_file = MyApplication.getInstance().getEmailBean(); eb_file.setTitle("含附件的邮件"); final MailInfo mailInfo_file = creatMail(eb_file); mailInfo_file.setContent("谁知盘中餐,粒粒皆辛苦。"); new Thread(new Runnable() { @Override public void run() { MailSender sms = new MailSender(); sms.sendFileMail(mailInfo_file, new File(Environment.getExternalStorageDirectory().getPath() + "/mes.txt")); } }).start();
发送Html文本的邮件
EmailBean eb_html = MyApplication.getInstance().getEmailBean(); eb_html.setTitle("含Html标签的邮件"); final MailInfo mailInfo_html = creatMail(eb_html); mailInfo_html.setContent("跳转"); new Thread(new Runnable() { @Override public void run() { MailSender sms = new MailSender(); sms.sendHtmlMail(mailInfo_html); } }).start();
# Gson
-dontwarn sun.misc.**
-keepclass sun.misc.**{*;}
-dontwarn com.google.**
-keepclass com.google.** {*;}
# 邮件类
-dontwarn com.sun.activation.registries.**
-keep class com.sun.activation.registries.** { *;}
-dontwarn javax.activation.**
-keep class javax.activation.** { *;}
-dontwarn myjava.awt.datatransfer.**
-keep class myjava.awt.datatransfer.**{ *;}
-dontwarn org.apache.harmony.**
-keep class org.apache.harmony.** { *;}
-dontwarn com.sun.mail.**
-keep class com.sun.mail.** { *;}
# 本demo
-dontwarn cn.ljcdada.deathassistant.**
-keep class cn.ljcdada.deathassistant.** { *;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型