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

相关推荐

  • 阿里云 云服务器ecs入门

    阿里云云服务器ECS(Elastic Compute Service)是一种弹性计算服务,提供了快速部署和扩展的虚拟服务器环境。以下是阿里云云服务器ECS的入门指南: 注册阿里云账号并登录。在阿里云官网上注册一个账号并登录。如果您已经有阿里云账号,则直接登录即可。 开通ECS服务。在阿里云控制台上,找到ECS产品,点击“立即购买”或者“开通服务”按钮,按照页…

    2023年9月7日
    49300
  • 阿里云短信配置怎么设置

    阿里云短信的配置设置步骤如下: 登录阿里云短信服务控制台(https://dysms.console.aliyun.com/)。 点击左侧导航栏中的”短信服务”,然后点击”短信模板管理”。 在短信模板管理页面,点击”新建模板”。 在新建模板页面中,填写模板名称、模板内容和模板备注。模板内…

    2023年11月4日
    50600
  • 保定阿里云代理商:阿里云安全会议

    保定阿里云代理商:阿里云安全会议 阿里云作为全球领先的云计算服务提供商,不仅在技术方面拥有强大的实力,还在信息安全领域积累了丰富的经验。近日,保定阿里云代理商成功举办了一场精彩纷呈的阿里云安全会议,充分展示了阿里云在数据安全、网络安全和应用安全方面的优势。 数据安全 阿里云通过先进的数据加密,确保用户数据在传输过程中得到有效保护。同时,阿里云提供了强大的数据…

    2024年1月9日
    52700
  • 常州阿里云代理商:阿里云构架

    常州阿里云代理商是指在常州地区代理销售阿里云产品和服务的代理商。阿里云是阿里巴巴集团旗下的云计算服务提供商,提供云主机、云存储、云数据库、云安全等多种云计算服务。常州阿里云代理商通过与阿里云合作,为当地客户提供阿里云产品和服务的购买、部署、维护和支持等服务。 常州阿里云代理商通常具有丰富的阿里云产品和服务的经验和专业知识,能够根据客户的需求,为他们定制最适合…

    2024年2月24日
    51200
  • 连云港物联网平台价格

    到连云港的物流费用是多少钱 这得看你通过什么渠道了,如果是火车,估计60-80这样,如果是通过汽车,自己联系的话要50-80这样。 连云港闪想平台收费合理吗?师傅服务态度怎么样。 闪想平台上天我们家还在那里找个水电维修工,师傅态度很好,价格也合理,他们还有专门回访的客户人员,身边如果有需要服务的朋友我会介绍给他的,他家服务类别还挺多的,我已经关注他家关注公众…

    2023年8月28日
    52000

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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