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

相关推荐

  • 襄阳阿里云企业邮箱代理商:阿里钉钉怎么换手机登录

    襄阳阿里云企业邮箱代理商:阿里钉钉怎么换手机登录 阿里云企业邮箱作为一款专业的企业邮箱服务,拥有众多优势,让企业管理和沟通更高效便捷。 阿里云企业邮箱的优势 高安全性:阿里云企业邮箱采用多层次的安全保障措施,包括密码强度控制、SSL加密传输、垃圾邮件过滤等,确保用户的邮件和数据得到有效的保护。 大容量存储:阿里云企业邮箱提供大容量的存储空间,每个用户可享受多…

    2024年1月28日
    29700
  • 阿里云服务器登录教程

    要登录阿里云服务器,可以按照以下步骤进行操作: 打开阿里云控制台(https://www.aliyun.com/)并登录您的阿里云账户。 在控制台页面上方导航栏中选择“服务器 ECS”。 在服务器 ECS 页面上,您将看到您已经创建的所有云服务器实例。找到您要登录的服务器实例,并单击右侧的“远程连接”按钮。 弹出远程连接对话框后,在对话框中选择“密码登录”或…

    2023年9月21日
    32300
  • 阿里云轻量级应用服务器迁移

    如何将一台阿里云服务器上的数据转移到另一台服务器上 1.用属性(Attribute)描述路径,而不是用度量值;2.使用TCP(端口179)作为传输协议,继承了TCP的可靠性和面向连接的特性;3.通过Keepalive信息来检验TCP的连接;4.具有丰富的属性特征,方便实现基于策略的路由;5.拥有自己的BGP表;6.支持VLSM和CIDR;7.适合在大型网络中…

    2023年8月27日
    28300
  • 济南阿里云代理商:app手机共享数据库

    济南阿里云代理商可以为客户提供app手机共享数据库的解决方案。通过阿里云的数据库服务,可以构建稳定、安全、高可用的数据库环境,供多个手机端的应用程序共享使用。 具体的方案可以包括以下步骤: 阿里云数据库选择:根据客户的需求和预算,选择适合的云数据库产品,如云数据库RDS、云原生数据库PolarDB等。 数据库部署:根据客户的需求,选择合适的数据库引擎和配置参…

    2024年2月6日
    31000
  • 乌海阿里云企业邮箱代理商:阿里邮箱密码规则设置

    乌海阿里云企业邮箱代理商:阿里邮箱密码规则设置 阿里云企业邮箱作为一款全球领先的企业级邮箱服务,拥有许多优势。本文将重点介绍阿里云企业邮箱的密码规则设置,并对其优势进行简单明了的阐述。 密码规则设置 阿里云企业邮箱提供了严格的密码规则设置,以保障用户账户的安全性。以下是阿里云企业邮箱密码规则的要点: 密码长度必须在8位以上 密码必须包含至少一个大写字母 密码…

    2024年2月14日
    33500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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