gpt4 book ai didi

android - 从 onReceive android 获取消息线程 id 或 _id

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:42 27 4
gpt4 key购买 nike

我试图获取保存在手机中的消息 ID。但是我没有得到它。我现有的代码在这里

@Override
public void onReceive(Context context, Intent intent) {
String address = "";
String message = "";
String msg_id="";
Bundle extras = intent.getExtras();
if (extras != null) {
Object[] smsExtra = (Object[]) extras.get("pdus");

for (int i = 0; i < smsExtra.length; i++) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
message += sms.getMessageBody();
address = sms.getOriginatingAddress();
}
sms = new Sms(msg_id,message, address);
UploadSms up = new UploadSms();
up.start();
Toast.makeText(context,
"SMS Received>>" + message + "From >>" + address,
Toast.LENGTH_LONG).show();
}

}

通过这个我得到短信正文和发件人号码。但我知道安卓手机中的每条消息都有一个唯一的编号,我检索到了它。但无法在 onReceive 方法中检索。谢谢

最佳答案

您将不得不解析 SMS PDU(原始 PDU 格式),因为在 android 应用程序层不存在用于检索用户数据 header 的 API。我相信短消息标识符位于用户数据报头(八位组 1)中。请引用帖子Parsing SMS PDU .

在那篇文章中,一位用户提到了一个名为“SMSLib”的免费软件(在 APACHE 许可下),以便解析和提取消息参数。可以使用方法 getMessageId() 提取消息 ID - 类 org.smslib.Message 中的方法。

希望这对您有所帮助。

关于android - 从 onReceive android 获取消息线程 id 或 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729517/

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