杭州阿里云代理商: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

相关推荐

  • 阿里云云计算工程师工作内容

    比阿里云计算ACE更好证有哪些 没有比阿里云计算ACE更好的证。中国云计算市场阿防诗吧观露一冲副向轻里云目前是第1位。阿里云现在证书等级应该是分三个等级的,从低到高分别是助理工程师(ACA)、专业工程师(ACP)、高级工程师(ACE)。业务方向分七大方向,分别是云计算,大数据,云安全,人工智能,数据库,物来自联网,云原生。但其中有高级工程师(ACE)考试认证…

    2023年8月25日
    81300
  • 菏泽阿里云代理商:安全网络会议

    菏泽阿里云代理商将举办一场名为“安全网络会议”的活动。该活动旨在提高对于网络安全的认识和了解,并介绍阿里云在网络安全方面的解决方案和服务。 会议内容包括以下几个方面:1.网络安全的重要性:介绍网络安全的基本概念和背景,以及其在当今互联网时代的重要性。2.网络安全威胁与解决方案:介绍当前常见的网络安全威胁,如网络攻击、数据泄露等,并介绍阿里云所提供的解决方案和…

    2024年2月8日
    71300
  • 阿里云服务器镜像选择哪个好

    阿里云服务器镜像选择应根据具体需求来确定。以下是一些常用的阿里云服务器镜像选项: CentOS:CentOS是一种免费的Linux发行版,广泛用于服务器环境。它稳定可靠,容易维护,适用于多种应用场景。 Ubuntu:Ubuntu是另一种流行的免费Linux发行版,提供友好的用户界面和强大的社区支持。它适用于各种用途,包括Web应用程序、数据库和容器等。 Wi…

    2023年9月23日
    69400
  • 阿里云客服报名成功没有钉钉消息

    如果您成功报名了阿里云客服岗位,但没有收到钉钉消息,您可以尝试以下步骤: 检查是否填写的联系方式(包括钉钉账号)准确无误。如果有错误,及时联系阿里云人力资源部门或招聘负责人进行更正。 检查钉钉设置是否开启了消息通知功能,并确保已经接收到其他的消息通知。有时候可能是由于钉钉设置问题导致的消息未能及时到达。 联系阿里云人力资源部门或招聘负责人,咨询有关您的报名状…

    2023年10月2日
    70900
  • 阿里云企业邮箱:哪个功能能防止邮件泄露?

    阿里云企业邮箱:哪个功能能防止邮件泄露? 随着信息化的发展,企业邮箱成为了各类公司日常工作中必不可少的工具。而随之而来的是邮件泄露的问题,企业对邮件的保密性和安全性要求越来越高。阿里云企业邮箱通过一系列先进的功能和技术手段,有效地解决了邮件泄露的问题。本文将从阿里云企业邮箱的优势出发,分析其如何通过不同的功能防止邮件泄露。 一、阿里云企业邮箱的优势 阿里云企…

    2025年4月12日
    58000

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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