gpt4 book ai didi

android - 我在 Android 的 BroadcastReceiver 中收到的那组 SmsMessages 有什么问题?

转载 作者:太空狗 更新时间:2023-10-29 13:39:50 25 4
gpt4 key购买 nike

这是我的 BroadcastReceiver 的样子:

public class IncomingSMSListener extends BroadcastReceiver {
private static final String SMS_EXTRA_NAME = "pdus";

@Override
public void onReceive(Context context, Intent intent) {
SmsMessage[] messages = fetchSMSMessagesFromIntent(intent);

}

private SmsMessage[] fetchSMSMessagesFromIntent(Intent intent) {
ArrayList<SmsMessage> receivedMessages = new ArrayList<SmsMessage>();
Object[] messages = (Object[]) intent.getExtras().get(SMS_EXTRA_NAME);
for (Object message : messages) {
SmsMessage finalMessage = SmsMessage
.createFromPdu((byte[]) message);
receivedMessages.add(finalMessage);
}
return receivedMessages.toArray(new SmsMessage[0]);
}

那么我收到的那组消息是什么?当超过 SMS 的有效字符数(即 160 个字符)时,数组中的每条消息是否都是由系统拆分的一条消息?还是当手机离线一段时间后,它们真的是完全不同的消息同时进来?有人可以帮我解决这个问题吗?我无法使用模拟器来找出答案,因为有一个已报告的错误会导致模拟器扰乱长的传入 SMS 消息。提前致谢。

最佳答案

可以传递多条消息(由系统自行决定):每条消息都是一个单独的 SMS 消息 PDU(协议(protocol)描述单元)。如果消息是 fragment 化的(用户发送的字符超过 140 个),那么您将获得 2 个 PDU。

关于android - 我在 Android 的 BroadcastReceiver 中收到的那组 SmsMessages 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071966/

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