gpt4 book ai didi

android - 如何在 Android 中捕获超过 80 字节的短信?

转载 作者:太空狗 更新时间:2023-10-29 15:16:48 24 4
gpt4 key购买 nike

我正在尝试制作一个关于短信的 Android 应用。我通过谷歌搜索获得了源代码,它工作正常。但是,它不适用于超过 80 字节的短信或彩信。 onReceive 方法似乎无法捕获那些长文本消息。

我是否遗漏了什么或犯了任何错误?

这是我添加的权限..

android.permission.READ_SMS, 
android.permission.RECEIVE_SMS,
android.permission.SEND_SMS,
android.permission.WRITE_SMS,
android.permission.READ_PHONE_STATE,
android.permission.INTERNET,
android.permission.ACCESS_NETWORK_STATE,
android.permission.RECEIVE_MMS,
android.permission.WRITE_EXTERNAL_STORAGE

这是我的代码:

public class MySMSMonitor extends BroadcastReceiver {   
private static String ACTIONNAME = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && intent.getAction() != null
&& ACTIONNAME.compareToIgnoreCase(intent.getAction()) == 0) {
Object[] pdu = (Object[]) intent.getExtras().get("pdus");
SmsMessage[] msg = new SmsMessage[pdu.length];
for (int i = 0; i < msg.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[]) pdu[i]);
}
StringBuilder sb = new StringBuilder();
for(SmsMessage allMsg : msg) {
sb.append(allMsg.getDisplayOriginatingAddress() + "&");
sb.append(allMsg.getDisplayMessageBody() + "&");
sb.append(allMsg.getTimestampMillis() + "&");
}
android.util.Log.i("SMS monitor", "data received = " + sb.toString());
}
}
}

请给我一些建议。

最佳答案

我没有发现您的代码有任何问题。

我实现了一个 example receiver with progress dialog(查看压缩项目的评论),它可以工作并且可以在我的手机上接收超过 80b 的消息。我建议您查看它并与您的代码进行比较。

关于android - 如何在 Android 中捕获超过 80 字节的短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032688/

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