欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能

 更新時(shí)間:2022年05月10日 10:11:00   作者:hellolxb  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件的具體代碼,供大家參考,具體內(nèi)容如下

開發(fā)環(huán)境 Android Studio 3.2.1
首先,既然跟讀短信和發(fā)郵件有關(guān),那么就一定要相關(guān)的權(quán)限,且安裝完應(yīng)用后要手動(dòng)打開相關(guān)權(quán)限…

// 接收和讀取短信
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
// 訪問網(wǎng)絡(luò)
?<uses-permission android:name="android.permission.INTERNET" />

第二,要用到相關(guān)的庫,直接下載就行

在庫文件中添加

android {
?? ??? ?packagingOptions {
?? ??? ??? ?// 相關(guān)證明
?? ??? ??? ?pickFirst 'META-INF/LICENSE.txt'
?? ??? ?}
?? ?}

dependencies {
?? ??? ?// 相關(guān)庫
?? ? ? ?implementation 'com.sun.mail:android-mail:1.6.0'
? ? ?? ?implementation 'com.sun.mail:android-activation:1.6.0'
? ? }

上源碼 :

package packageName;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsMessage;
import android.text.TextUtils;

import java.util.Date;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;

public class MainActivity extends AppCompatActivity ?{
? ?// 自定義廣播
? ?private BroadcastReceiver smsReceiver;
? ?// 過濾器
? ?private IntentFilter filter;
? ?// 郵箱內(nèi)容
? ?private String strContent;
? ?// 郵箱標(biāo)題
? ?private String strTitle;
? ?// 消息處理器
? ?private Handler handler;

? ?@Override
? ?protected void onCreate(Bundle savedInstanceState) {
? ? ? ?super.onCreate(savedInstanceState);
? ? ? ?// 布局文件中沒啥東西
? ? ? ?setContentView(R.layout.activity_main);
? ??? ? ? // ?帥選出接受到的新短信
? ? ? ?filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
? ? ? ?// 給其最大權(quán)限
? ? ? ?filter.setPriority(Integer.MAX_VALUE);
? ??? ? ? // 一收到新消息就發(fā)送郵件
? ? ? ?handler = new Handler() {
? ? ? ? ? ?@Override
? ? ? ? ? ?public void handleMessage(Message msg) {
? ? ? ? ? ? ? ?Properties p = new Properties();
? ? ? ? ? ? ? ?// 后面寫發(fā)送人 的郵箱類型,qq 的寫 smtp.qq.com
? ? ? ? ? ? ? ?p.put("mail.smtp.host", "smtp.163.com");
? ? ? ? ? ? ? ?// mail 包下的
? ? ? ? ? ? ? ?Session session = Session.getInstance(p, null);
? ? ? ? ? ? ? ?final MimeMessage mess = new MimeMessage(session);
? ? ? ? ? ? ? ?try {
? ? ? ? ? ? ? ? ? ?mess.setFrom("發(fā)送人郵箱");
? ? ? ? ? ? ? ? ? ?mess.setRecipients(javax.mail.Message.RecipientType.TO, "接收人郵箱");
? ? ? ? ? ? ? ? ? ?// 設(shè)置郵件標(biāo)題,當(dāng)前設(shè)置為電話號(hào)碼
? ? ? ? ? ? ? ? ? ?mess.setSubject(strTitle);
? ? ? ? ? ? ? ? ? ?// 設(shè)置短信內(nèi)容,只支持文本
? ? ? ? ? ? ? ? ? ?mess.setText(strContent);
? ? ? ? ? ? ? ? ? ?// 設(shè)置時(shí)間
? ? ? ? ? ? ? ? ? ?mess.setSentDate(new Date());
? ? ? ? ? ? ? ? ? ?// 聯(lián)網(wǎng)操作要在線程中執(zhí)行
? ? ? ? ? ? ? ? ? ?new Thread(new Runnable() {
? ? ? ? ? ? ? ? ? ? ? ?@Override
? ? ? ? ? ? ? ? ? ? ? ?public void run() {
? ? ? ? ? ? ? ? ? ? ? ? ? ?try {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Transport.send(mess, "接收人郵箱", "接收人郵箱的授權(quán)碼");
? ? ? ? ? ? ? ? ? ? ? ? ? ?} catch (MessagingException e) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?}).start();
? ? ? ? ? ? ? ?} catch (MessagingException e) {
? ? ? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ?};
? ??? ? ? // 廣播接收到指定內(nèi)容后進(jìn)行的操作
? ? ? ?smsReceiver = new BroadcastReceiver() {
? ? ? ? ? ?@Override
? ? ? ? ? ?public void onReceive(Context context, Intent intent) {
? ? ? ? ? ? ? ?Object[] objs = (Object[]) intent.getExtras().get("pdus");
? ? ? ? ? ? ? ?for (Object o : objs) {
? ? ? ? ? ? ? ? ? ?byte[] pdu = (byte[]) o;
? ? ? ? ? ? ? ? ? ?SmsMessage sms = SmsMessage.createFromPdu(pdu);
? ? ? ? ? ? ? ? ? ?// 發(fā)送人電話號(hào)碼
? ? ? ? ? ? ? ? ? ?strTitle = sms.getOriginatingAddress();
? ? ? ? ? ? ? ? ? ?// 短信內(nèi)容
? ? ? ? ? ? ? ? ? ?strContent = sms.getMessageBody();
? ??? ??? ??? ??? ? ? // 若都不為空則發(fā)送郵件
? ? ? ? ? ? ? ? ? ?if (!TextUtils.isEmpty(strContent) && !TextUtils.isEmpty(strTitle)) {
? ? ? ? ? ? ? ? ? ? ? ?handler.sendEmptyMessage(1);
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ?};
? ??? ?// 開啟廣播,一定要關(guān)閉
? ? ? ?registerReceiver(smsReceiver, filter);
? ?}

? ?@Override
? ?protected void onDestroy() {
? ? ? ?super.onDestroy();
? ? ? ?// 關(guān)閉廣播
? ? ? ?unregisterReceiver(smsReceiver);
? ?}
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論