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

在Android中,短信拦截可以通过继承 BroadcastReceiver 并拦截特定的短信广播来实现。

以下是一个基础短信的拦截代码示例:

public class SMSReceiver extends BroadcastReceiver {

    // 接收短信的 Intent filter action
    private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction() != null && intent.getAction().equals(SMS_RECEIVED)) {

            // Retrieve a map of extended data from the intent
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");

                if (pdus != null) {
                    for (Object pdu : pdus) {

                        // 将单个 PDU 转换为 SmsMessage
                        SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);

                        // 从短信中获取发送者
                        String sender = smsMessage.getDisplayOriginatingAddress();

                        // 从短信中获取短信内容
                        String messageBody = smsMessage.getMessageBody();

                        // 在这里,可以根据需要来拦截具体的短信
                        if (sender.contains("特定号码或特定的内容")) {
                            // 终止广播(不让其他应用收到此广播,短信到达手机后,不在通知栏提示)
                            abortBroadcast();
                        }
                    }
                }
            }
        }
    }
}

用此代码,记得要在AndroidManifest.xml文件中注册该接收器:

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

并且需要添加以下权限:

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

最后,在应用中必须获得用户的同意以获取接收和读取短信的权限。可以在程序开始时使用请求权限的API请求权限:

if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED
   || ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_SMS}, 123);
}

注意: Android 4.4(KitKat)及更高版本的系统对于短信的处理有较大的改变。由原来的任何应用都可以接收短信变成只有默认的短信应用可以接收到新的短信。

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

以上就是基本的短信拦截代码的实现方法。

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

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

相关推荐

  • 宝鸡阿里云企业邮箱代理商:小程序阿里云服务器费用

    宝鸡阿里云企业邮箱代理商:小程序阿里云服务器费用 阿里云企业邮箱的优势: 1. 安全性高:阿里云企业邮箱提供多层次的安全保障机制,包括数据加密传输、防病毒防垃圾邮件、账号安全等。用户可以放心地使用邮箱进行工作沟通和文件传输。 2. 丰富的功能:阿里云企业邮箱提供多种功能,包括日程管理、任务分配、群组协作、附件管理等。这些功能能够帮助企业高效地管理和组织工作流…

    2024年2月1日
    74200
  • 阿里巴巴云客服好做吗

    阿里巴巴云客服指的是阿里巴巴集团旗下的客服解决方案,也被称为阿里云客服。阿里云客服采用了智能语音和自然语言处理等技术,为企业提供智能化客服解决方案。具体来说,阿里云客服可以实现自动应答、智能引导、对话分析等功能,提升客服效率和服务质量。 在使用阿里云客服之前,企业需要进行初期的配置和培训,以确保系统能够正确理解和回答用户的问题。同时,企业也需要根据自己的业务…

    2023年9月29日
    70700
  • 阿里云服务器数据库功能

    阿里云服务器数据库功能主要包括以下几个方面: 数据库实例:阿里云提供了多种数据库实例,包括关系型数据库(RDS)、NoSQL数据库(MongoDB、Redis等)和时序数据库(TSDB)。用户可以根据自己的需求选择不同的数据库实例进行部署和管理。 数据库备份与恢复:阿里云提供数据库的自动备份和手动备份功能,用户可以根据需要进行备份策略的配置,定期备份数据库,…

    2023年9月15日
    78300
  • 无法连接阿里云服务器

    如果无法连接阿里云服务器,请按照以下步骤进行排查和解决: 检查网络连接:确保本地网络连接正常,尝试访问其他网站或服务器,确认是否只有阿里云服务器无法连接。 检查服务器状态:登录阿里云服务器控制台,查看服务器是否处于正常运行状态。如果服务器状态异常,尝试重启服务器。 检查安全组规则:登录阿里云服务器控制台,确认安全组规则是否正确配置。确保安全组允许对应的端口和…

    2023年9月30日
    64400
  • 阿里云数据库

    阿里云数据库是由阿里云提供的一种云数据库服务。它提供了多种类型的数据库引擎,如关系型数据库、文档数据库、缓存数据库等,用户可以根据自己的需求选择合适的数据库类型。 阿里云数据库具有高可用性、可伸缩性和弹性扩展等特点。它可以自动备份数据,提供数据的灾备和恢复功能,可根据用户的访问量进行自动扩展,以应对高并发的访问需求。 另外,阿里云数据库还提供了数据迁移、数据…

    2023年8月16日
    73700

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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