gpt4 book ai didi

安卓:接收短信

转载 作者:行者123 更新时间:2023-11-29 17:34:06 25 4
gpt4 key购买 nike

我是 Android 的新手。

我想在收到短信时触发一些代码。以下代码有效,但我无法理解它是如何工作的:

package net.learn2develop.SMSMessaging;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;

public class SmsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}
}

最佳答案

bundle.get("PDU");在此“pdus”中表示协议(protocol)数据单元,它是 SMS 消息的行业格式。因为 SMSMessage 读取/写入它们,所以您不需要剖析它们。

  • 一条大消息可能会被分成很多条,这就是为什么它是一个对象数组的原因。首先,它从您的收件箱中获取所有短信,并将其一条一条地存储在 msgs 对象中
  • createFromPdu 我们需要写这一行,因为每条短信可能来自同一发件人,也可能不同。
  • getDisplayOriginatingAddress() 返回起始地址,但已弃用。

  • getMessageBody() 为您提供消息的内容我希望这能给你代码工作的想法

    我希望你能找到你要找的东西。

关于安卓:接收短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com