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

相关推荐

  • 阿里云视频剪辑效果如何

    阿里云视频剪辑是一项云上视频编辑服务,可以帮助用户实现简单、快速、高效地进行视频剪辑和编辑。以下是阿里云视频剪辑的特点和效果: 剪辑功能丰富:阿里云视频剪辑提供了基本的剪切、旋转、裁剪、分割等基础剪辑功能,同时还支持视频字幕、滤镜、转场、特效、背景音乐等高级剪辑功能。 简单易用:用户可以通过简单的拖拽和操作即可完成视频剪辑和编辑,无需专业的技术知识。 智能剪…

    2023年10月26日
    5500
  • 阿里云轻量级服务器删除实例

    要删除阿里云轻量级服务器实例,可以按照以下步骤进行操作: 登录阿里云轻量级服务器控制台。 在左侧导航栏中选择“实例”。 在实例列表中找到需要删除的服务器实例,点击右侧的“删除”按钮。 在弹出的确认对话框中,选择“是”,并点击“确定”按钮。 系统将会弹出一个操作提示,提示删除成功。 请注意,删除实例后将无法恢复,且实例中的数据将会丢失。在删除前,请确保已备份好…

    2023年9月29日
    3800
  • 济宁阿里云代理商:奥运会倒计时

    济宁阿里云代理商近日宣布,该公司将成为2022年北京冬奥会的官方云服务提供商。作为阿里云在济宁地区的代理商,公司将为奥运会提供云计算、大数据、人工智能等一系列先进技术支持。 据悉,济宁阿里云代理商与奥委会已经达成合作协议,并正式成为北京冬奥会“云前服务中心”的合作伙伴。该中心将利用阿里云的强大技术能力,在倒计时期间提供全面的云服务支持,包括数据存储、虚拟机、…

    2023年12月30日
    3400
  • 阿里云服务器怎么删除数据

    要删除阿里云服务器上的数据,您可以使用以下步骤: 登录到阿里云控制台(https://www.aliyun.com/)。 在控制台页面上方的搜索框中输入“云服务器ECS”,然后选择搜索结果中的“云服务器 ECS”。 在左侧导航栏中选择“实例列表”。 找到要删除数据的服务器实例,点击其实例名称进入详情页面。 在详情页面中,点击“登录”按钮打开服务器的远程登录页…

    2023年9月17日
    4800
  • 阿里云邮箱企业邮箱注册入口

    您可以使用以下步骤注册阿里云企业邮箱: 1.访问阿里云邮箱的官方网站(https://qiye.aliyun.com/?utm_content=se_1001068821)。2.点击网页右上角的”免费注册”按钮。3.进入注册页面后,填写企业邮箱的相关信息,包括企业名称、联系人姓名、联系电话等。4.在”注册邮箱”…

    2023年11月4日
    5500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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