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

相关推荐

  • 曲靖阿里云代理商:阿里通信短信服务器接口

    曲靖阿里云代理商提供阿里通信短信服务器接口服务。阿里通信是阿里巴巴集团旗下的通信服务品牌,其短信服务器接口是一种集成在系统中,用于发送和接收短信的接口。 通过阿里通信短信服务器接口,用户可以方便地集成短信功能到自己的系统中,实现发送短信验证码、推送短信通知等功能。这个接口提供了丰富的功能和灵活的配置选项,用户可以根据自己的需求进行定制。 曲靖阿里云代理商提供…

    2023年12月18日
    23900
  • 东营阿里云代理商:api编程基础

    API编程基础指的是掌握使用阿里云API进行编程开发的基本知识和技能。阿里云是阿里巴巴集团旗下的云计算服务平台,提供了丰富的开放API接口,用于开发者与阿里云资源进行交互和管理。 以下是一些API编程基础知识和技能: API概念:了解API(Application Programming Interface)的概念,即应用程序编程接口,是软件系统中不同组件之…

    2024年2月1日
    24900
  • 鹰潭阿里云企业邮箱代理商:怎么修改阿里邮箱账户名

    鹰潭阿里云企业邮箱代理商:如何修改阿里邮箱账户名 引言 阿里云企业邮箱作为一款强大而可靠的企业级邮件解决方案,为企业提供了高效的电子邮件管理和沟通协作工具。在使用过程中,有时我们需要修改阿里邮箱账户名来适应公司内部的需要或个人要求。本文将为您介绍如何修改阿里邮箱账户名,并同时探讨阿里云企业邮箱的优势和好用之处。 步骤一:登录阿里云企业邮箱管理后台 首先,打开…

    2024年1月21日
    22300
  • 手机阿里云的语音合成怎么操作

    要使用阿里云的语音合成功能,你需要先进行以下操作: 注册阿里云账号并登录。 打开阿里云官网,选择产品和服务中的”人工智能”,再选择”语音合成”。 在左侧菜单中选择”语音合成控制台”。 点击”立即开通”,会进入语音合成控制台。 在控制台中选择”产品概览&…

    2023年10月24日
    26200
  • 合肥阿里云代理商:asp.net上传文件保存到数据库

    在 ASP.NET 中,可以使用 FileUpload 控件来实现文件上传。上传文件后,可以将文件保存到数据库中,请按照以下步骤操作: 添加 FileUpload 控件到 ASP.NET 页面,并为其设置 ID 和 runat=”server” 属性。 创建一个 Button 控件,并设置其 Text 和 OnClick 属性。在 O…

    2024年3月2日
    21200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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