阿里云国际站:android 4 拦截短信

在Android 4中,我们可以使用BroadcastReceiver拦截短信。这里有一个简单的例子,可以参考。

首先我们需要在AndroidManifest.xml中声明权限并添加对应的元素:

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS" />

<receiver android:name=".SmsReceiver">
     <intent-filter android:priority="1000">
         <action android:name="android.provider.Telephony.SMS_RECEIVED" />
     </intent-filter>
</receiver>

这里我们声明了接收和读取短信的权限,然后注册了一个BroadcastReceiver。并且设置了优先级为1000,这是为了尽可能先处理短信。

然后我们需要实现SmsReceiver:

阿里云国际站:android 4 拦截短信
public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // Retrieves a map of extended data from the intent.
        final Bundle bundle = intent.getExtras();

        try {
            if (bundle != null) {
                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                for (int i = 0; i < pdusObj.length; i++) {
                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);

                    String senderNum = currentMessage.getDisplayOriginatingAddress();
                    String message = currentMessage.getDisplayMessageBody();

                    // Check if message matches your criteria
                    if (senderNum.equals("your number") && message.startsWith("some text")) {
                        // Do something
                        // If you want to make sure SMS is not delivered to other applications
                        abortBroadcast();
                    }

                } // end for loop

            } // bundle is null

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception: " + e);
        }
    }
}

在这段代码中,我们在onReceive方法中获得了短信相关信息,然后根据号码和短信内容做了一些操作。如果你想阻止短信传递给其他应用,可以调用abortBroadcast方法。

注意,这种方式在Android 4.4或之后的版本中可能会不起作用,因为Google修改了处理短信的方式。在4.4或之后的版本中,你可能需要把你的应用设为默认短信应用才能处理短信。或者你可以使用其他方式来获取短信,例如使用NotificationListenerService来读取短信通知。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/171539.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月24日 21:34
下一篇 2024年3月24日 21:48

相关推荐

  • 张北阿里巴巴云计算数据中心招聘信息

    涿州阿里巴巴云计算中心项目开工了吗 开工了。涿州是一个城市,截至2022年12月16日,该城市阿里巴巴云计算中心项目开工了,预计2024年完工。涿镇州州市,古称涿鹿、涿邑、涿郡哪衫、范阳、涿州路、涿县,河北省保定市代御缓蔽管县级市。 总投资60亿元 总投资60亿元、建设容量10万台服务器的阿里·数据港张北数据中心项目开工建设。该项目是阿里巴巴在张北部署大规模…

    2023年8月29日
    14600
  • 衡阳阿里云代理商:android代码带服务器端

    作为一家衡阳阿里云代理商,我们可以帮助您开发Android应用程序并集成服务器端功能。以下是一个简单的示例,展示如何在Android应用程序中实现与服务器通信的功能。 首先,您需要在服务器上搭建一个后端接口,可以使用阿里云的云服务器或其他云服务提供商来搭建一个简单的API接口。这个接口可以使用RESTful API架构,接受客户端的请求并返回相应的数据。 在…

    2024年2月25日
    13000
  • 物联网云平台架构搭建

    怎样架构物联网云平台 物联网作为一个系统网络,与其他网络一样也有其内部特有的架构。物联网平台系统架构划分为三个层次。一:感知层,即利用 RFID、传感器、二维码等随时随地获取物体的信息;二:网络层,通过各种电信网络与互联网的融合,将物体的信息实时准确地传递出去;三:应用层,把感知层的得到的信息进行处理,实现智能化识别、定位、跟踪、监控和管理等实际应用。物联网…

    2023年8月29日
    14000
  • 阿里云服务器哪个区域的比较快

    阿里云服务器的速度与所选的区域有关。一般来说,离您的目标访问者和应用程序用户最近的区域速度会更快。例如,如果您的目标用户主要在中国大陆地区,选择华东1(杭州)或华北2(北京)等地区的服务器可能会更快。如果您的目标用户主要在海外地区,选择离他们更近的区域可能会更快。此外,阿里云也提供了全球服务器负载均衡服务,可以根据用户的地理位置自动路由到最近的服务器,从而提…

    2023年9月16日
    14400
  • 宜春阿里云代理商:android网络请求快框架

    宜春阿里云代理商推荐使用以下几个快速的Android网络请求框架: Retrofit:Retrofit是一个强大且灵活的网络请求库,它使用简单的注解方式定义API接口,并支持多种数据格式的解析器和多种网络协议,如HTTP、WebSocket等。 OkHttp:OkHttp是一个高效的HTTP客户端库,它构建在Java的URLConnection基础上,并提供…

    2024年2月5日
    12100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/