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

相关推荐

  • 南昌阿里云代理商:as3读取数据库

    要在AS3中读取数据库,首先需要创建数据库连接。在AS3中,可以使用这些步骤来读取数据库: 导入必要的类: import flash.data.SQLConnection; import flash.data.SQLStatement; import flash.events.SQLErrorEvent; import flash.events.SQLEve…

    2024年2月7日
    76700
  • 株洲阿里云代理商:asp域名停放源码

    株洲阿里云代理商:ASP域名停放源码 阿里云作为全球领先的云计算服务提供商,具备许多优势,特别是在ASP域名停放源码方面。下面将为大家详细介绍阿里云的优势。 1. 稳定可靠的基础设施 阿里云拥有全球分布的数据中心,采用高性能服务器和网络设备,可以保证ASP域名停放源码的稳定运行,并提供高可靠性和低延迟的服务。 2. 强大的安全性能 阿里云提供了多层次的安全防…

    2024年1月14日
    72000
  • 兰州阿里云代理商:阿里云深度学习

    阿里云是中国领先的云计算服务商,提供云服务器、云数据库、云存储等各种云服务。在深度学习领域,阿里云也提供了丰富的解决方案和工具。 作为兰州的阿里云代理商,我们可以帮助企业和个人了解阿里云深度学习产品,并提供技术支持和咨询服务。以下是阿里云深度学习的主要产品和服务: 阿里云机器学习平台(Alibaba Cloud Machine Learning Platfo…

    2023年12月25日
    80500
  • 阿里云企业邮箱:‌怎样通过阿里云邮箱实现邮件代发?‌

    阿里云企业邮箱:如何通过阿里云邮箱实现邮件代发? 一、阿里云企业邮箱的核心优势 阿里云企业邮箱作为国内领先的企业级邮件服务,具备以下核心优势: 高安全性:采用多层加密技术,支持SPF/DKIM/DMARC反垃圾协议,保障企业数据安全。 稳定可靠:基于阿里云全球基础设施,99.9%服务可用性承诺。 智能管理:提供邮件归档、审计日志、组织架构同步等企业级功能。 …

    2025年7月6日
    62500
  • 南通阿里云代理商:api协议有哪些

    作为南通阿里云代理商,我们提供以下常见的API协议: RESTful API协议:基于HTTP协议的一种轻量级网络传输协议,使用GET、POST、PUT、DELETE等请求方法进行资源的增删改查操作。 SOAP协议:基于XML的一种网络传输协议,使用SOAP消息格式进行远程过程调用(RPC)。 GraphQL协议:一种用于API的查询语言和运行时环境的规范,…

    2024年1月30日
    65800

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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