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

相关推荐

  • 阿里云买完服务器后怎么搭建

    阿里云服务器搭建的基本步骤如下: 登录阿里云控制台,进入云服务器ECS控制台。 在”ECS实例”页面,点击”创建实例”按钮。 在创建实例页面,选择你需要的配置,包括地域、可用区、实例规格、镜像、存储等。 在网络和安全组设置中,选择VPC网络和创建安全组,配置网络和安全组的相关参数。 在SSH密钥对设置中,可以选…

    2023年9月12日
    4700
  • 汉川阿里云企业邮箱代理商:阿里云价格表

    汉川阿里云企业邮箱代理商:阿里云价格表 阿里云企业邮箱是一款全球领先的企业邮箱服务,由阿里云提供支持与服务。作为汉川地区的阿里云企业邮箱代理商,我们将为您介绍阿里云企业邮箱的优势和价格表。 阿里云企业邮箱的优势: 安全稳定:阿里云企业邮箱采用国际领先的安全技术,确保邮箱数据安全无忧。 高效便捷:支持移动端同步、多设备同步,随时随地查看邮件,高效办公。 强大功…

    2024年2月27日
    4700
  • 有人物联网云平台登录入口

    中国物联网送积分是骗人吗? 不是骗人的。物联网云平台需具备以下功能。1、业务受理、开通、计费功能要成为物联网业务的服务提供商,需要建立一套面向客户、传感器厂商、第三方行业应用提供商的运营服务体系,包括组织、流程、产品、支撑系统,其中支撑系统应具备业务受理、开通、计费等功能,能够提供物联网产品的快速开通服务。2、信息采集、存储、计算、展示功能物联网云平台需要支…

    2023年8月26日
    5200
  • 云视频服务业务

    云视频服务业务是指通过云计算技术提供的在线视频服务。它将视频内容存储在云端服务器中,通过互联网传输,用户可以随时随地通过互联网访问和观看视频内容。云视频服务业务通常包括以下方面: 视频存储和管理:云视频服务提供大容量的存储空间,用户可以将自己的视频文件上传到云端服务器进行存储和管理。用户可以通过云平台对视频文件进行分类、标签和搜索等操作,方便管理和查找。 视…

    2023年9月26日
    5200
  • 阿里云dns解析

    阿里云DNS解析是指将域名解析为对应的IP地址或将IP地址解析为对应的域名的过程。阿里云DNS (Domain Name Service) 是阿里云提供的域名解析服务。用户可以在阿里云控制台中配置自己的域名解析,并将域名指向特定的IP地址,从而将域名与服务器或其他网络资源进行关联。 使用阿里云DNS解析的步骤如下: 在阿里云DNS控制台中创建域名解析。输入域…

    2023年8月11日
    5700

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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