阿里云国际站: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

相关推荐

  • 重庆阿里云代理商:阿里云企业邮箱pop3设置

    阿里云企业邮箱是一个基于云计算技术的企业级电子邮件解决方案,通过POP3协议可以设置邮件客户端来收取和管理企业邮箱的邮件。 以下是重庆阿里云代理商提供的阿里云企业邮箱POP3设置步骤: 打开邮件客户端,点击邮件设置(一般在菜单栏的“设置”或“选项”选项中)。 在邮件设置中找到“账户设置”或“邮箱设置”,点击新增账户或添加新账户。 在弹出的账户设置对话框中,输…

    2024年1月8日
    17300
  • 宁波阿里云代理商:阿里云开机自动挂载数据盘

    在阿里云云服务器中,我们可以在创建实例时选择是否挂载数据盘。但是,有时候我们需要在已经创建的云服务器中添加一个数据盘。这时候,需要手动挂载数据盘,而且每次重启服务器后,数据盘都需要重新挂载。为了让数据盘可以开机自动挂载,我们可以按照以下步骤进行设置: 登录阿里云控制台,进入云服务器 ECS 管理页面。 在左侧导航栏中选择“存储与快照”->“磁盘”。 找…

    2023年12月28日
    19000
  • 阿里云备份数据库

    阿里云提供了多种方式来备份数据库,以下是一种常用的备份方法: 登录阿里云管理控制台,选择对应的云数据库实例。 进入实例详情页,点击左侧菜单栏中的“备份恢复”。 在备份恢复页中,点击“创建备份”按钮。 在创建备份对话框中,选择备份类型(自动备份或手动备份)、备份周期和保留天数,并点击“确定”按钮。 完成上述操作后,阿里云会自动创建数据库的备份文件并存储在云存储…

    2023年9月17日
    14600
  • 免费机器学习云平台

    以下是一些免费的机器学习云平台: Google Colab:Google提供的免费云端Python编程环境,支持机器学习模型的开发和训练,同时可以免费使用Google的GPU和TPU加速。 Microsoft Azure:Azure提供了一些免费的AI和机器学习工具,如Azure Notebooks和Azure Machine Learning Studio…

    2023年10月11日
    16800
  • 传媒企业对阿里云企业邮箱的多媒体邮件支持和传输需求?

    传媒企业对阿里云企业邮箱的多媒体邮件支持和传输需求 在信息化时代,传媒企业的沟通和信息传递效率直接影响到业务的开展和发展。阿里云企业邮箱凭借其强大的多媒体邮件支持和高效的传输能力,逐渐成为众多传媒企业的首选。本文将探讨阿里云企业邮箱在多媒体邮件支持方面的优势,以及其满足传媒企业传输需求的能力。 阿里云企业邮箱的优势 1. 多媒体邮件支持 阿里云企业邮箱支持多…

    2024年10月31日
    11200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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