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

相关推荐

  • 北京阿里云代理商:asp 上传图片压缩存储

    作为北京阿里云代理商,您可以通过以下步骤实现图片的上传、压缩和存储: 登录阿里云官方网站,注册账号并购买云服务器 ECS 实例。 在 ECS 实例上安装 ASP.NET 开发环境(比如 IIS)。 在您的 ASP.NET 网站项目中,添加上传图片的功能模块。 在 ASP.NET 中,可以使用各种开源的图片压缩库或者第三方组件来实现图片压缩操作,比如 Imag…

    2024年2月14日
    15500
  • 阿里2000亿云计算

    马云的资产2000亿是什么意思 固有资产,比如阿里仓库,支付宝,股票,估值是2000亿 阿里云真的国内云计算第一吗 应当算是吧,市场份额是第一的。买阿里云的服务器,用推荐码 7h7qra 九折优惠,只要是申请的是首台服务器就可以用。 阿里云的云计算价值 阿里巴巴集团首席技术官王坚,曾系统性链消茄地概括了云计算对于未来世界的价值1、互联网是基础设施互联网是基础…

    2023年8月28日
    14900
  • 阿里应用分发

    阿里应用分发是指阿里巴巴集团旗下的应用分发平台,提供给开发者将自己开发的应用程序(APP)进行发布和分发的服务。阿里应用分发平台可以帮助开发者将应用推广给更多的用户,增加应用的下载量和使用率。 阿里应用分发平台提供了全面的应用发布、推广和运营支持。开发者可以在平台上提交自己的应用程序,并通过阿里巴巴集团的广告资源,在各种渠道上进行推广。平台还提供了应用数据分…

    2023年10月24日
    15500
  • 阿里云云服务器申请教程

    阿里云云服务器申请教程可以分为以下几个步骤: 注册阿里云账号:进入阿里云官网(www.aliyun.com),点击右上角的“登录/ 注册”按钮进行注册。如果已经有阿里云账号,可以直接登录。 购买云服务器:登录阿里云账号后,进入阿里云控制台,点击“产品与服务”选项,选择“云服务器ECS”。然后点击“立即购买”按钮。 选择实例配置和地域:根据需求选择实例的配置和…

    2023年9月16日
    16500
  • 滁州阿里云代理商:apache配置多个证书

    在Apache服务器上配置多个证书可以使用虚拟主机(Virtual Host)的方式。下面是一个简单的示例: 在Apache的配置文件中,找到Listen指令,并确保监听的端口与要使用的证书相匹配。默认情况下,Apache监听的端口是80(HTTP)和443(HTTPS)。 创建一个新的虚拟主机配置文件,可以使用以下命令: sudo nano /etc/ap…

    2024年2月4日
    18400

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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