杭州阿里云代理商: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年11月14日
    62100
  • 个人如何使用阿里云计算

    个人如何使用阿里云。下了个阿里云APP什么都用不了, 阿里云app是用来管理服务器(或者说是阿里云云中云计算资产)的,并不是存东西的。 请问阿里云计算如何使用(比如我有一个有限元模型,如何利用阿里云进 2:进阿里云服务器远程界面的时候,把本地磁盘带进去,然后进服务器里直接从本地磁盘里把文件复制到服务器里。 阿里云是个什么技术,开发者应该如何使用它 阿里云是阿…

    2023年8月29日
    64300
  • 周口阿里云代理商:access数据库清空

    周口阿里云代理商:Access数据库清空 在现代信息化时代,大量的数据被存储在各种数据库中。然而,有时候我们需要清空某个数据库中的数据,以便重新开始或释放空间。作为周口地区的阿里云代理商,我们为您提供高效、安全的Access数据库清空服务。 阿里云的优势 阿里云作为全球领先的云计算服务提供商,在数据库管理方面具有以下优势: 高可靠性:阿里云为用户提供高可用性…

    2024年1月19日
    61900
  • 腾讯云阿里云服务器

    腾讯云和阿里云都是国内主流的云服务提供商,它们都提供了各种类型的云服务器产品。 腾讯云服务器(Tencent Cloud Server,简称CVM)是腾讯云提供的基于虚拟化技术的服务器产品。腾讯云服务器提供了多种机型可供选择,并且具有良好的网络稳定性和安全性。腾讯云服务器还提供了丰富的操作系统和应用软件支持,以满足不同客户的需求。 阿里云服务器(Alibab…

    2023年8月25日
    61500
  • 宿州阿里云企业邮箱代理商:钉钉邮箱网页版登录入口在哪

    阿里云企业邮箱代理商:钉钉邮箱网页版登录入口在哪 阿里云企业邮箱是一款专为企业定制的高效、安全的电子邮件解决方案。作为宿州阿里云企业邮箱代理商,我们将为您介绍钉钉邮箱网页版的登录入口,并为您总结阿里云企业邮箱的优势。 钉钉邮箱网页版登录入口 要登录钉钉邮箱的网页版,您只需要打开浏览器,在地址栏输入“mail.dingtalk.com”即可。这个网页版支持各种…

    2024年1月25日
    60100

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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