江门阿里云代理商:android 短信拦截demo

package com.example.smsinterceptor;

import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private BroadcastReceiver smsReceiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Check for SMS permission
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_SMS}, 1);
    }

    // Register SMS receiver
    smsReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle extras = intent.getExtras();
            if (extras != null) {
                Object[] pdus = (Object[]) extras.get("pdus");
                for (Object pdu : pdus) {
                    SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);
                    String messageBody = sms.getMessageBody();
                    
                    // Add your logic to intercept and process SMS messages
                    if (messageBody.contains("KEYWORD")) {
                        // Block this message
                        abortBroadcast();
                        Toast.makeText(context, "SMS Blocked", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        }
    };

    IntentFilter filter = new IntentFilter();
    filter.addAction("android.provider.Telephony.SMS_RECEIVED");
    registerReceiver(smsReceiver, filter);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (smsReceiver != null) {
        unregisterReceiver(smsReceiver);
    }
}

}

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        Object[] pdus = (Object[]) bundle.get("pdus");
        SmsMessage[] messages = new SmsMessage[pdus.length];

        for (int i = 0; i < messages.length; i++) {
            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
            String sender = messages[i].getOriginatingAddress();
            String messageBody = messages[i].getMessageBody();

            // Add your logic here to check and intercept the sms
            if (sender.equals("1234567890") && messageBody.contains("keyword")) {
                abortBroadcast(); // Block the SMS
                Toast.makeText(context, "SMS from blocked sender intercepted", Toast.LENGTH_SHORT).show();
            } else {
                // Forward the SMS to default messaging app
            }
        }
    }
}

在AndroidManifest.xml中注册SmsReceiver接收器:

江门阿里云代理商:android 短信拦截demo
<receiver android:name=".SmsReceiver">
    <intent-filter android:priority="999">
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>

请注意,这段代码演示了如何拦截指定发送者和包含特定关键字的短信。您可以根据自己的需求对短信内容进行进一步的处理和拦截。在实际应用中,建议添加权限READ_SMSRECEIVE_SMS

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/150090.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年2月19日 19:27
下一篇 2024年2月19日 19:46

相关推荐

  • 阿里云企业邮箱代理商:我能通过阿里云企业邮箱轻松设置邮件转发吗?

    阿里云企业邮箱代理服务:轻松实现邮件转发的高效管理 一、阿里云企业邮箱的邮件转发功能简介 作为阿里云企业邮箱代理商,我们深知企业在日常办公中对邮件管理的需求。阿里云企业邮箱提供简单易用的邮件转发功能,用户只需通过管理员后台或邮箱设置页面,即可快速配置将指定邮箱的邮件自动转发至其他内部成员或外部邮箱地址。这一功能尤其适合部门协作、信息同步或离职员工工作交接等场…

    2025年9月26日
    40500
  • 湖州阿里云代理商:android键盘布局

    在Android上实现键盘布局可以通过自定义布局文件或通过编程方式来实现。下面是一种常见的方法: 创建一个包含按键的自定义布局文件,例如keyboard.xml。 <Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth…

    2024年1月3日
    72700
  • 南京阿里云代理商:android 从网络获取图片

    在Android中,我们可以通过使用URLConnection或者OkHttp等网络库获取图片。 使用URLConnection获取图片的代码如下: URL url = new URL("http://www.example.com/image.jpg"); HttpURLConnection connection = (HttpURLC…

    2024年2月28日
    60100
  • 宁波阿里云企业邮箱代理商:阿里邮箱管理账号在哪里

    宁波阿里云企业邮箱代理商:阿里邮箱管理账号在哪里 阿里云企业邮箱是一款功能强大的企业级邮件解决方案,为企业提供了高效、安全、稳定的邮件服务。作为宁波阿里云企业邮箱代理商,我们将介绍阿里云企业邮箱的优势,并解答一个常见问题:阿里邮箱管理账号在哪里。 阿里云企业邮箱的优势 1. 安全可靠:阿里云企业邮箱采用了多层次的安全保护措施,包括SSL加密传输、病毒过滤等,…

    2024年2月2日
    60300
  • 深圳阿里云代理商:安装linux连不上网络打印机

    在Linux上设置网络打印机可能有点复杂,因为这取决于你的打印机,Linux发行版和打印系统。在大多数情况下,你需要知道打印机的IP地址或主机名以及有关模型的信息,如驱动程序等。下面是一般性的步骤: 1.确保打印机已连接到网络,并且你知道其IP地址或主机名。 2.在Linux机器上打开打印设置。你可以在系统设置菜单找到这个选项,或者你可能需要使用特定的命令,…

    2024年3月14日
    57300

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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