现在的位置: 首页 > 综合 > 正文

android 短信自动转发功能

2017年04月15日 ⁄ 综合 ⁄ 共 1936字 ⁄ 字号 评论关闭

1.首先需要申请权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zizhu.broadcast"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <receiver android:name=".BroadcastReceiver" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </application>

<!--     <uses-permission android:name="android.permission.INTERNET" /> -->
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />

</manifest>

2.监听接收短信,然后转发

package com.zizhu.broadcast;

import java.util.Date;
import java.text.SimpleDateFormat;

import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.telephony.gsm.SmsManager;
import android.util.Log;
import android.widget.Toast;

public class BroadcastReceiver extends android.content.BroadcastReceiver {
	
	private static final String FROM = "";//设置需要设置的转发号码
	private static final String TO = "";//转发目的地
	
	public static final String TAG = "BroadcastReceiver";

	@Override
	public void onReceive(Context context, Intent intent) {
		Object[] puds = (Object[])intent.getExtras().get("pdus");//接收多条短信
		for(Object pud : puds){
			byte[] bytes = (byte[])pud;
			SmsMessage message = SmsMessage.createFromPdu(bytes);
			Log.d(TAG, "content:" + message.getMessageBody());
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Log.d(TAG, "time:" + sdf.format(new Date(message.getTimestampMillis())));
			Log.d(TAG, "sender:" + message.getOriginatingAddress());
//			Toast.makeText(context, message.getMessageBody(), 1).show();
			//判断是否是指定的号码
			if(message.getOriginatingAddress().equals(FROM)){
				sendMessage(message.getMessageBody(),  TO);//转发
			}
		}
	}

	/**
	 * @param content 内容
	 * @param to 目的地
	 */
	private void sendMessage(String content, String to) {
		SmsManager manager = SmsManager.getDefault();
		manager.sendTextMessage(to, null, content, null, null);
	}

}

抱歉!评论已关闭.