zoukankan      html  css  js  c++  java
  • Android短信收发(二)

    接收SMS类,代码如下

    //for receive SMS
        private SmsReceiver mSmsReceiver;
        @Override
        protected void onResume() {
            super.onResume();
            mSmsReceiver = new SmsReceiver();
            IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
            intentFilter.setPriority(1000);
            registerReceiver(mSmsReceiver, intentFilter);
        }
        @Override
        protected void onPause() {
            super.onPause();
            unregisterReceiver(mSmsReceiver);
        }
        public class SmsReceiver extends BroadcastReceiver {
            public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
    
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Log.d(TAG,"action: "+action);
                if (SMS_RECEIVED_ACTION.equals(action)) {
                    Bundle bundle = intent.getExtras();
    
                    //String messageContent = bundle.getString("message");
                    Object[] pdus = (Object[]) bundle.get("pdus");//获取短信数组
                    SmsMessage[] messages = new SmsMessage[pdus.length];
                    String format = intent.getStringExtra("format");
                    for (int i = 0; i < messages.length; i++) {
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i],format);//将pdu字符数组转换成SmsMessage对象
                        }
                        else {
                            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);
                    Log.d(TAG,"SMS notes: "+fullMessage);
                    abortBroadcast();
                }
            }
        }
    

      

  • 相关阅读:
    HttpWebRequest中的ContentType详解
    c# 创建Windows服务
    转载 Url编码
    在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。
    IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
    Response.ContentLength获取文件大小
    unable to instantiate activity...
    查看android-support-v4.jar引出的问题
    导入项目 R.java没有
    初识python: 局部变量、全局变量
  • 原文地址:https://www.cnblogs.com/eniac1946/p/7592024.html
Copyright © 2011-2022 走看看