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

相关推荐

  • 无锡阿里云代理商:阿里云短信服务php

    无锡阿里云代理商提供了阿里云短信服务的PHP代码示例,让您可以轻松集成阿里云短信功能到您的网站或应用中。下面是一个简单的示例代码: <?php header("Content-type:text/html;charset=utf-8"); require_once 'aliyun-php-sdk-core/Config.p…

    2024年3月2日
    18700
  • 杭州仁和阿里云计算数据中心 招聘

    有哪些公司招聘与云计算有关的职位?待遇怎样,都需要哪些专业知识? 从组织的观点看,云计算以一种简化的方式来提供服务来满足客户和业务需求,提供无限伸缩以及不同质量的服务来促进快速创新和决策。它是一种 IT 资源的服务获得和交付模型,如果在整个 IT 策略内适当使用,可以帮助改进业务绩效以及控制向组织提供 IT 资源的成本。在一个几乎任何人和任何事物都可以连接到…

    2023年8月26日
    18600
  • 许昌阿里云代理商:android网络定位源码

    很抱歉,我无法提供具体的许昌阿里云代理商的联系信息。但是我可以分享一些关于Android网络定位源码的一般性信息。 Android提供了许多不同的定位功能,其中包括网络定位。网络定位是利用移动设备连接到互联网的方式来获取位置信息。在Android开发中,可以使用Google Play服务的Location API来实现网络定位。 要实现网络定位,首先需要在A…

    2024年3月3日
    18000
  • 阿里云服务器实例怎么登录

    登录阿里云服务器实例可以使用以下几种方式: 通过SSH登录:使用SSH客户端软件(如PuTTY、XShell等)输入服务器IP地址、用户名和密码进行登录。示例:ssh root@服务器IP地址 通过云服务器管理控制台登录:登录阿里云官网,在云服务器ECS页面找到对应的服务器实例,点击登录,选择密码登录或者密钥登录,输入相应的登录凭证即可。 通过阿里云提供的V…

    2023年10月31日
    19200
  • 用阿里云服务器怎么搭建直播室

    要在阿里云服务器上搭建直播室,你需要遵循以下步骤: 购买阿里云服务器:首先,你需要选择合适的阿里云服务器套餐,购买一个实例。选择合适的服务器规格和配置,确保能够支持直播所需的带宽和性能要求。 配置操作系统:一般情况下,阿里云服务器会提供多种操作系统选择,如Windows、Linux等。选择适合你的需求的操作系统,并进行安装和配置。 安装直播服务器软件:根据你…

    2023年10月27日
    21700

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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