在我的应用程序中创建了MMS消息,但未在本机消息应用程序中显示

时间:2012-05-08 09:33:05

标签: android mms

我创建了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);
 }

1 个答案:

答案 0 :(得分:1)

部分答案:不确定为什么它没有显示在内置消息传递应用中,但请查看How to Read MMS Data in Android?的答案,了解如何获取线程ID。

编辑:您还可能需要为发件人添加content://mms/{id}/addr的地址条目,如果这是来自当前设备,则insert-address-token似乎就足够了。地址条目还需要type,其中151用于接收地址,137用于发件人。

可能还需要更多内容,我会阅读现有的数据库,然后逐字段地查看它,并确保覆盖那些不是null0的内容。