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

Like (0)
luotuoemo的头像luotuoemo
Previous 2024年3月24日 21:34
Next 2024年3月24日 21:48

相关推荐

  • 阿里云管理服务器名称怎么改

    阿里云centos 怎么修改主机名 vi /etc/sysconfig/network,修改hostname一行为””hostname=主机名””(没有这行?那就添加这一行吧),然后运行命令”” hostname 主机名””。一般还要修改/etc/hosts文件中…

    2023年8月28日
    8200
  • 廊坊阿里云代理商:阿里云 部署lvs

    阿里云是中国领先的云计算服务提供商之一,也是全球最大的公共云服务提供商之一。阿里云代理商则是指在阿里云平台上代理销售和提供阿里云产品和服务的合作伙伴。 LVS(Linux Virtual Server)是一种基于Linux主机的高性能、可扩展的服务器负载均衡解决方案。通过使用LVS,可以将来自客户端的请求分发到多个后端服务器,实现并发访问、负载均衡和高可用。…

    2024年2月13日
    11800
  • 阿里云流媒体服务器搭建直播

    搭建阿里云流媒体服务器用于直播可以按照以下步骤进行: 注册阿里云账号并登录到控制台。 购买一个适用于流媒体的服务器,建议选择ECS实例,根据实际需要选择配置。选择操作系统时,推荐选择Linux系统。 购买一个域名并进行解析,用于访问直播流。 获得并配置服务器的登录信息,使用SSH等方式登录到服务器。 在服务器上安装Nginx服务器,可以通过命令 sudo a…

    2023年8月6日
    10300
  • 阿里云国际站代理商:access数据库文本框

    阿里云国际站代理商是提供阿里云国际站产品销售和服务支持的合作伙伴。这些代理商与阿里云国际站建立合作关系,可以帮助客户选择并购买合适的阿里云产品,提供技术支持和解决方案咨询等服务。 关于access数据库文本框,请问您想了解什么具体信息?Access数据库是微软提供的一种用于管理和处理数据的数据库管理系统,其中的文本框是用于显示和输入文本数据的控件。在Acce…

    2024年2月3日
    9300
  • 常州阿里云代理商:api-zh

    阿里云的优势及其重要性 阿里云代理商api-zh是常州地区重要的云计算服务提供商,以其独特的优势脱颖而出。本文将从多个方面探讨阿里云在市场竞争中的优势,并解释其在云计算领域的重要性。 1. 强大的基础设施 阿里云拥有全球范围内强大而稳定的基础设施。其数据中心数量众多,分布在全球各大洲,为用户提供低延迟和高可靠性的服务。此外,阿里云还通过技术创新,提供了高效的…

    2024年1月21日
    8000

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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