1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/liujiangc-dAssistant

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 6.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 09:25 098a28a

Введение

  1. Функция 1: глобальный перехват критических ошибок в приложении;
  2. Функция 2: перезапуск приложения после возникновения исключения и отправка информации об исключении на пользовательский адрес электронной почты или пользовательский метод обработки;
  3. Функция 3: отправка текстовых, вложенных и HTML-писем.

Эффект изображения

Изображение с эффектом отправки исключений по электронной почте (https://images.gitee.com/uploads/images/2019/0708/150642_7fb134f8_5114946.png "36Z]QUBBVIA_KRC$]D@M{)8.png")

Инструкция по установке

  1. В файле build.gradle проекта добавьте:

    allprojects { repositories {
    ..
    maven { url 'https://www.jitpack.io' } } }

  2. В файл build.gradle приложения добавьте:

    dependencies { .. implementation 'com.gitee.liujiangc:dAssistant:0.1.8' }

Использование

  1. Завершите инициализацию в MyApplication, чтобы при возникновении критической ошибки приложение перезапускалось, а информация об ошибке отправлялась по указанному адресу электронной почты.

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 принимает один или два параметра
    **/
    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));//Название вашего приложения
    eb.setUser_name("test_user_id");//Если в приложении есть модуль входа, можно передать идентификатор пользователя
    eb.setToEmail("Введите адрес для получения писем@qq.com");//Адрес для получения писем
    eb.setFormEmail("Введите адрес отправки писем@qq.com");//Адрес отправки писем
    eb.setPassword("Введите полученный код авторизации");//Код авторизации для входа в почтовый ящик третьей стороны
    // Процесс получения кода авторизации QQ: войдите в веб-версию почтового ящика QQ - Настройки - Аккаунт - Включите POP3/SMTP - Включите IMAP/SMTP - Сгенерируйте код авторизации
    // Для новых запросов QQ требуется более двух недель для подачи заявки на получение кода авторизации
    eb.setTitle("Отчет об ошибках");//Заголовок письма
    return eb;
}

}

  1. AndroidManifest.xml

    <application android:name=".MyApplication" ..

  2. Отправка чистого текстового письма:

    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();

  3. Отправка письма с вложением — требуется разрешение на чтение:

    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();

  4. Отправка 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.datatranster.**{ *;}
-dontwarn org.apache.harmony.**
-keep class org.apache.harmony.** { *;}
-dontwarn com.sun.mail.**
-keep class com.sun.mail.** { *;}
# Этот демо-проект
-dontwarn cn.ljcdada.deathassistant.**
-keep class cn.ljcdada.deathassistant.** { *;}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/liujiangc-dAssistant.git
git@api.gitlife.ru:oschina-mirror/liujiangc-dAssistant.git
oschina-mirror
liujiangc-dAssistant
liujiangc-dAssistant
master