我创建了mms消息。 问题是:在我的应用程序中显示,但在android本机消息应用程序中没有显示。 你知道什么是错的吗?我应该为thread_id设置什么? 提前谢谢。
---这是我的代码---
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("thread_id", System.currentTimeMillis() % 100);
cv.put("ct_t", "application/vnd.wap.multipart.related");
cv.put("read", "1");
Uri temp_mms = cr.insert(Uri.parse("content://mms/inbox"), cv);
String str_uri = temp_mms.toString();
String newID = temp_mms.getLastPathSegment().trim();
ContentValues cv_addr2 = new ContentValues();
cv_addr2.put("address", "112233");
Uri temp_mms_addr2 = cr.insert(Uri.parse("content://mms/"+ newID +"/addr"), cv_addr2);
// ------------------------------PART Table ContentValues
Uri uriPart = Uri.parse("content://mms/"+ newID +"/part");
ContentValues cv_part2 = new ContentValues();
cv_part2.put("ct", "image/jpeg");
Uri temp_mms_part2 = cr.insert(uriPart, cv_part2);
OutputStream os = cr.openOutputStream(temp_mms_part2);
InputStream is = cr.openInputStream(selectedImageUri);
byte[] buffer = new byte[256];
for (int len = 0; (len = is.read(buffer)) != -1; ) {
os.write(buffer, 0, len);
}
答案 0 :(得分:1)
部分答案:不确定为什么它没有显示在内置消息传递应用中,但请查看How to Read MMS Data in Android?的答案,了解如何获取线程ID。
编辑:您还可能需要为发件人添加content://mms/{id}/addr
的地址条目,如果这是来自当前设备,则insert-address-token
似乎就足够了。地址条目还需要type
,其中151
用于接收地址,137
用于发件人。
可能还需要更多内容,我会阅读现有的数据库,然后逐字段地查看它,并确保覆盖那些不是null
或0
的内容。