gpt4 book ai didi

android:短信广播接收器无法获取较大短信的全文

转载 作者:行者123 更新时间:2023-11-29 14:31:49 25 4
gpt4 key购买 nike

似乎如果出现带有较大文本的短信,由于某种原因它会被截断,因此不会收到完整的短信,这是我的代码:

public class SmsReceiver extends BroadcastReceiver {
// vars here

@Override
public void onReceive(Context context, Intent intent) {

// Get SMS map from Intent
Bundle extras = intent.getExtras();

if (extras != null) {
// Get received SMS array
Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);

String address = "";
String body = "";

for (int i = 0; i < smsExtra.length; ++i) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
body = sms.getMessageBody().toString();
address = sms.getOriginatingAddress();
}

// show the popup
Intent intnt = new Intent(context, ShowNotification.class);
intnt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intnt.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intnt.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

intnt.putExtra("address", address);
intnt.putExtra("body", body);
context.startActivity(intnt);

}
}
}

现在让我们假设短信文本是:

Pellentesque 居民 morbi tristique senectus et netus et malesuada fames ac turpis egestas。 Vestibulum tortor quam、feugiat vitae、ultricies eget、tempor sit amet、ante。 Donec eu libero sit amet quam egestas semper。 Aenean ultricies mi vitae est. Mauris placerat eleifend leo。 Quisque sit amet est et sapien ullamcorper pharetra。

并且我在 toast 中显示从上方的广播接收器接收到的短信,toast 中只显示最后几个字,或者即使我将此短信正文传递给另一个弹出 Intent ,也只会传递与 toast 中所示一样多的文本:

int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, body, duration);
toast.show();

所以出于某种原因,并没有收到完整的短信 :(

谁能告诉我如何处理这个?正如我看到的其他短信应用程序(例如 SMS Popup 或 Go SMS Pro)一样,它们确实会获取完整的短信文本并显示在弹出窗口或对话中。

谢谢你的帮助

最佳答案

好吧,我明白了,我使用的代码只收到最后一条短信,只需要附加所有短信:

这个:

body = sms.getMessageBody().toString();

应该是:

body += sms.getMessageBody().toString();

关于android:短信广播接收器无法获取较大短信的全文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382360/

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