gpt4 book ai didi

android - 使用sendMultimediaMessage发送和读取MMS

转载 作者:太空狗 更新时间:2023-10-29 14:42:45 24 4
gpt4 key购买 nike

我知道有很多类似的老问题要问,但是我没有找到我需要的东西。
发送
我希望能够使用android的SmsManager.sendMultimediaMessage功能发送mms消息。更具体地说,我想提供一个电话号码,一个文本字符串或图像的uri,然后发送消息,然后将结果作为PendingIntent广播。
我可能已经看了很多关于这个的问题,没有运气。
作为一个例子,这里是我如何实现这个短信版本。注意该方法如何将消息存储在数据库中,然后扫描它并返回id。

public int sendSms(String number, String text);
ContentValues values = new ContentValues();
long threadId = getOrCreateThreadId(getApplicationContext(), number);
values.put(Telephony.Sms.ADDRESS, number);
values.put(Telephony.Sms.DATE, System.currentTimeMillis());
values.put(Telephony.Sms.DATE_SENT, System.currentTimeMillis());
values.put(Telephony.Sms.READ, 1);
values.put(Telephony.Sms.TYPE, Telephony.Sms.MESSAGE_TYPE_OUTBOX);
values.put(Telephony.Sms.THREAD_ID, threadId);
values.put(Telephony.Sms.BODY, text);
getContentResolver().insert(Telephony.Sms.Inbox.CONTENT_URI, values);
Cursor c = getContentResolver().query(Telephony.Sms.CONTENT_URI, null, null, null, "_id desc");
int id = -1;
if (c.moveToFirst())
id = c.getInt(c.getColumnIndexOrThrow(BaseColumns._ID));
c.close();
Log.i("MessagingService", "Sending message: " + text);
ArrayList<String> parts = SmsManager.getDefault().divideMessage(text);
ArrayList<PendingIntent> pendingIntents = new ArrayList<>();
for (String i : parts) {
Intent intent;
if (id != -1) {
intent = new Intent(MainActivity.MSG_STATUS_CHANGE);
intent.putExtra("id", id);
} else {
intent = new Intent(MainActivity.RUN_CODE);
intent.putExtra("type", "reload-thread");
intent.putExtra("content", String.valueOf(threadId));
}
pendingIntents.add(PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
}
StatusChangeReceiver.pendingPartCounts.put(id, parts.size());
SmsManager.getDefault().sendMultipartTextMessage(number, null, parts, pendingIntents, null);
return id;
}

我想用 sendMultimediaMessage做类似的事情。注意,我的目标是android 5.0(api级别21),但是为了兼容性,我有一个定制的 getOrCreateThreadId实现。
阅读
此外,阅读彩信与阅读短信是否相似?如果没有,我该怎么做呢?

最佳答案

我创建了一个sample project来解释android 5及更高版本设备使用downloadMultimediaMessage&sendMultimediaMessage的方法。

关于android - 使用sendMultimediaMessage发送和读取MMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177231/

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