杭州阿里云代理商:Android 监听短信的源码

以下是一个基本的 Android 监听短信的源码示例:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.util.Log;

public class SmsReceiver extends BroadcastReceiver {

    private static final String TAG = "SmsReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
            Object[] pdus = (Object[]) intent.getExtras().get("pdus");
            if (pdus != null) {
                for (Object pdu : pdus) {
                    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
                    String sender = smsMessage.getOriginatingAddress();
                    String message = smsMessage.getMessageBody();

                    Log.d(TAG, "Received SMS: From " + sender + ", Message: " + message);
                    // 在这里进行你的业务逻辑处理
                }
            }
        }
    }
}

你需要在 AndroidManifest.xml 文件中声明 BroadcastReceiver:

<uses-permission android:name="android.permission.RECEIVE_SMS" />

<application
    ...
    <receiver android:name=".SmsReceiver">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>
    ...
</application>

记得在 AndroidManifest.xml 文件中添加 RECEIVE_SMS 权限。

这样,当手机接收到新的短信时,SmsReceiver 的 onReceive 方法会被调用,并在日志中打印短信发送者的号码和短信内容。你可以在这个方法中添加自己的业务逻辑来处理接收到的短信。

以下是一个简单的Android监听短信的代码示例:

首先,在Manifest文件中添加以下权限和接收器声明:

<uses-permission android:name="android.permission.RECEIVE_SMS" />

<application>
    ...
    <receiver android:name=".SmsReceiver">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>
    ...
</application>

接下来,创建一个名为SmsReceiver的广播接收器类,并实现onReceive()方法:

杭州阿里云代理商:Android 监听短信的源码
public class SmsReceiver extends BroadcastReceiver {
    private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(SMS_RECEIVED_ACTION)) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                if (pdus != null && pdus.length > 0) {
                    SmsMessage[] messages = new SmsMessage[pdus.length];
                    for (int i = 0; i < pdus.length; i++) {
                        messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    }
                    String messageBody = messages[0].getMessageBody(); // 获取短信内容
                    String sender = messages[0].getOriginatingAddress(); // 获取短信发送者的手机号码
                    
                    // 在这里可以对接收到的短信进行处理
                    // TODO: 进行你的操作
                    
                    // 广播接收器中不建议做耗时操作,可以启动Service来处理更复杂的逻辑
                }
            }
        }
    }
}

注意:广播接收器中的代码应该尽可能简洁且高效,避免引发ANR(Application Not Responding)的情况。

需要记得自行处理Android手机系统版本兼容性问题,例如在Android 6.0及以上的版本中需要动态请求RECEIVE_SMS权限。

希望这段代码能帮到你,如果有其他问题,请随时追问。

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

(0)
luotuoemo的头像luotuoemo
上一篇 2024年2月10日 11:18
下一篇 2024年2月10日 11:30

相关推荐

  • 常州阿里云代理商:阿里云 交叉面试

    我是GPT-3语言模型,并不能进行交叉面试。但是我可以提供一些关于常州阿里云代理商的信息,帮助您做准备。 常州阿里云代理商是指在常州地区代理销售阿里云产品和服务的企业。作为阿里云的代理商,您需要熟悉阿里云的产品和服务,了解云计算和云服务的基本概念,以及阿里云与其他云服务提供商的差异。 在交叉面试中,您可能会被问到以下问题: 请介绍一下阿里云的产品和服务。 阿…

    2024年2月14日
    19600
  • 商洛阿里云企业邮箱代理商:阿里云官网个人免费邮箱

    商洛阿里云企业邮箱代理商:阿里云官网个人免费邮箱 简介:阿里云企业邮箱是阿里云推出的专业企业邮件服务解决方案,为企业提供安全可靠的邮件通讯服务。 优势一:稳定可靠 阿里云企业邮箱基于阿里云强大的云计算技术和数据中心,确保邮件服务的稳定性和可靠性。用户可以放心使用企业邮箱进行邮件通讯。 优势二:安全防护 阿里云企业邮箱具有多层次的安全防护机制,包括反垃圾邮件、…

    2024年2月19日
    18800
  • 阿里云邮件推送服务规则

    阿里云邮件推送服务规则包括以下几个方面: 邮件推送权限规则:阿里云邮件推送服务根据用户的接入方式和使用场景,设定不同的限制条件,包括每日推送数量、发送速率、发送域名等。 垃圾邮件规则:阿里云邮件推送服务禁止发送垃圾邮件,即未经用户许可、没有明确请求的邮件。垃圾邮件包括广告邮件、诈骗邮件、恶意软件推广邮件等。 邮件模板规则:阿里云邮件推送服务要求用户使用合法、…

    2023年8月12日
    22600
  • 阿里云服务器迁移

    如何把阿里云ecs服务器内容完全迁移到另外一个ecs服务器 A账户的实例镜像只能是系统盘的镜像共享到B账号,B账号可以用现有实例更换,如果是包含数据盘的镜像只能是新购实例的时候才可以选择。 不想用阿里云服务器了,怎么迁走备案 这个可以不管他,不用迁走。因为你要网站搬家,就到服务器商家那里做接入备案就行了。如果你不使用这个域名和服务器了,就注销备案就行了。网站…

    2023年8月28日
    21700
  • 烟台阿里云代理商:阿里云的服务器添加安全组规则

    阿里云服务器的安全组规则是用于控制服务器的入站和出站流量的策略。要添加安全组规则,可以按照以下步骤操作: 登录阿里云控制台,进入云服务器ECS的管理页面。 选择要设置安全组规则的实例,点击右侧的“安全组设置”。 在安全组设置页面,点击“入方向”或“出方向”下的“配置规则”按钮。 在规则设置页面,点击“添加安全组规则”按钮。 在规则设置页面,可以选择规则类型、…

    2023年12月24日
    23600

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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