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

相关推荐

  • 临邑阿里云企业邮箱代理商:阿里云个人域名转给公司

    临邑阿里云企业邮箱代理商:阿里云个人域名转给公司 随着企业信息化的不断发展,邮箱已经成为企业日常工作中不可或缺的一部分,而阿里云企业邮箱则是其中的佼佼者。为什么说阿里云企业邮箱如此优秀?以下将从以下方面进行解释: 1.高效便捷 阿里云企业邮箱采用全球领先的MailCore核心技术,邮件发送和接收速度快,能够快速处理海量的邮件,提高工作效率。同时,支持POP3…

    2024年2月29日
    16100
  • 阿里云智能视觉人脸修复增强

    阿里云智能视觉人脸修复增强是一种基于阿里云智能视觉技术的服务,可以对人脸图片进行修复和增强。具体功能包括以下几个方面: 人脸磨皮:可以去除人脸上的瑕疵和细纹,使肤色更加均匀,达到美容效果。 美白美肤:可以提亮肤色,去除暗沉和黄褐斑,让人脸看起来更加光滑和年轻。 去眼袋和黑眼圈:可以去除人脸上的眼袋和黑眼圈,让眼部更加明亮有神。 眼部放大和亮显:可以对眼睛进行…

    2023年8月4日
    21500
  • 阿里云国际站:ajax删除服务器文件

    在web开发中,一般情况下,不会直接通过ajax来删除服务器上的文件,而是通过发送ajax请求告诉服务器,由服务器端的代码来完成文件的删除工作。 以下是一个基本的例子,主要使用JavaScript的ajax方法与php: Javascript: function deletefile(filename){ $.ajax({ url: 'delete…

    2024年3月22日
    14000
  • 周口阿里云代理商:app与单片机通信

    周口阿里云代理商:app与单片机通信 在智能物联网时代,应用程序(APP)和单片机的通信变得更为重要和常见。阿里云作为一家领先的云计算服务提供商,在这方面具有许多优势。 1. 强大的云计算能力 作为全球领先的云计算平台,阿里云拥有强大的云计算能力。通过阿里云,用户可以轻松地将APP和单片机连接到云端,实现高效稳定的数据传输与存储。阿里云提供高速网络和可扩展的…

    2024年1月22日
    17700
  • 阿里云测试收益怎么算

    银川昱塔汇的影视投资收益是怎么算的? 影视投资收益是根据最后影片的票房收益计算的,比如你现在投资的电影制作成本一千万,你投了一百万,你的投资占比就是10%,当影片上映结束后,票房是一个亿,你的收益就是这一亿里的10%,也就是一千万。 浙江“天天惠1号/2号”如何计算收益? 天天惠(1号/2号)根据协议约定的计息标准,按账户存款积数(含保底余额)计付利息。其中…

    2023年8月29日
    16500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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