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

相关推荐

  • 成都阿里云代理商:android 连接电脑网络

    作为成都阿里云代理商,我们可以为您提供以下关于 Android 连接电脑网络的方法: 使用 USB 数据线连接 将 Android 设备通过 USB 数据线连接到电脑上,然后在设备的设置中开启 USB 网络共享功能,就可以通过电脑上的网络访问互联网。具体步骤如下: a. 确定电脑上已安装了 Android 手机的驱动程序。 b. 在 Android 设备设置…

    2024年3月9日
    18100
  • 阿里云合作伙伴项目有什么用途吗

    阿里巴巴伙伴计划提供什么样的服务? 目前阿里巴巴的“伙伴计划”针对诚信通会员提供物流优惠服务,已与物流行业3家快递公司(天天、韵达和圆通)和5家货运公司(德邦货运、大田陆运、佳吉货运、新邦货运、中铁物流)签署了战略合作协议,后续将会有更多不同行业的服务提供商加入到伙伴计划中。详情请参考阿里巴巴物流频道:http://56.1688.com/ 非官方合作伙伴有…

    2023年8月25日
    15300
  • 赣州阿里云代理商:alt

    赣州阿里云代理商是指在赣州地区经营阿里云产品和服务的代理商。阿里云作为中国最大的云计算服务提供商,提供了包括云服务器、云数据库、云存储、云安全等一系列云计算产品和解决方案。作为阿里云代理商,可以提供阿里云产品的销售、咨询、部署和技术支持等服务。 ALT是阿里云中国区合作伙伴生态计划的一部分,即Aliyun Leaders Team的简称。ALT是由阿里云授权…

    2024年1月24日
    17700
  • 阿里云服务器远程桌面端口设置

    阿里云服务器 怎么远程桌面连接 工具/原料获取阿里云服务器的ip地址和服务器权限百度搜索“SSHSecureShellClient3.2.9”下载SSH工具方法/步骤安装SSH此过程没有什么技术含量,默认安装就可以了。成功安装后,桌面会出现这两个图标,“SSHSecureShellClient”是“SSH安全Shell客户端”;“SSHSecureFileT…

    2023年8月26日
    17000
  • 阿里云企业邮箱参数

    阿里云企业邮箱参数包括以下内容: 邮件服务器地址:可以是IMAP服务器地址或POP3服务器地址,用于接收邮件;SMTP服务器地址,用于发送邮件。 端口号:IMAP和POP3协议默认端口号分别为143和110,SMTP协议默认端口号为25或465。 SSL加密:是否启用SSL加密,可以提高邮件传输的安全性。 邮箱账号:登录邮箱时使用的账号名称。 邮箱密码:登录…

    2023年9月9日
    14700

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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