• Android--短信


    1、Android 提供一系列 API,可以是我们在自己的程序中发送和接收短信;

    2、接收短信:

      1)当手机接收到一条短信时,系统会发出一条值为 android.provider.Telephony.SMS_RECEIVED 的广播,这条广播携带着与短信相关的所有信息;

      2)我们可以在自己的程序中接收到这条广播,并提取其中的数据,即为接收短信;

    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        Object[] pdus = (Object[]) bundle.get("pdus"); // 提取短信消息,每一个pdu都表示一条短信消息
        SmsMessage[] messages = new SmsMessage[pdus.length];
        for (int i = 0; i < messages.length; i++) {
            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
        }
        String address = messages[0].getOriginatingAddress(); // 获取发送方号码
        String fullMessage = "";
        for (SmsMessage message : messages) {
            fullMessage += message.getMessageBody(); // 获取短信内容}
            sender.setText(address);
            content.setText(fullMessage);
        }
    }

    3、发送短信:

      1)Android 中通过 SmsManager 来发送,先调用 getDefault() 方法获取实例,然后调用它的 sendTextMessage() 方法来发送短信;

      2)sendTextMessage() 方法中,第一参数为收信人,第三个参数为发送的内容,第四个参数为一个 PendingIntent 对象,它用于监听短信的发送状态;

    public void send() {
        SmsManager manager = SmsManager.getDefault();//获取SmsManager实例
        Intent intent = new Intent("SENT_SMS_ACTION");
        PendingIntent pi = PendingIntent.getBroadcast(MyActivity.this, 0, intent, 0);//监听短信发送状态的PendingIntent,当短信发送完毕时发送一条值SENT_SMS_ACTION的广播
        manager.sendTextMessage(to.getText().toString(), null, sendContent.getText().toString(), pi, null);//发送短信
    }
  • 相关阅读:
    TTreeView.OnCustomDrawItem
    xe Style
    delphi 加密 XOR
    ReportMachine 自定义代码 画细线
    XE 安装后C盘占用太大,C盘空间清理
    FireFox 书签 缓存 路径设置
    Android 照相
    Android手机与服务器(案例一) webservice
    win10/win7 笔记本 开启虚拟无线 批处理
    Delphi XE6打电话
  • 原文地址:https://www.cnblogs.com/tengtao93/p/5279934.html
Copyright © 2020-2023  润新知