短信的广播

本文介绍了一个简单的Android应用中实现短信接收与发送功能的方法。通过BroadcastReceiver监听短信到达的广播,并解析短信内容;同时提供了发送短信的功能,支持短信内容超过一定长度时的自动分割。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是收短信的功能.
读短信的功能.

收到短信的广播处理.

public class SMSBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
SmsMessage msg = null;
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdusObj = (Object[]) bundle.get(“pdus”);
for (Object p : pdusObj) {
msg= SmsMessage.createFromPdu((byte[]) p);

                String msgTxt =msg.getMessageBody();//得到消息的内容

                Date date = new Date(msg.getTimestampMillis());//时间
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String receiveTime = format.format(date);

                String senderNumber = msg.getOriginatingAddress();

            if (msgTxt.equals("Testing!")) {
                Toast.makeText(context, "success!", Toast.LENGTH_LONG)
                        .show();
                System.out.println("success!");
                return;
            } else {
                Toast.makeText(context, msgTxt, Toast.LENGTH_LONG).show();
                System.out.println("发送人:"+senderNumber+"  短信内容:"+msgTxt+"接受时间:"+receiveTime);
                return;
            }
        }
        return;
    }
}

发送短信.
** public void send(View view ) {
String strNo=num.getText().toString();
String strContent=content.getText().toString();

    SmsManager smsManager = SmsManager.getDefault();
    //如果字数超过5,需拆分成多条短信发送
    if (strContent.length() > 5) {
        ArrayList<String> msgs = smsManager.divideMessage(strContent);
        for (String msg : msgs) {
            smsManager.sendTextMessage(strNo, null, msg, null, null);                        
        }
    } else {
        smsManager.sendTextMessage(strNo, null, strContent, null, null);
    }
    num.setText("");
    content.setText("");

    Toast.makeText(SendSMS.this, "短信发送完成", Toast.LENGTH_LONG).show();
}

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值