我想要来自 android 中 MMS db 的彩信号码、发送/接收、正文和附件详细信息...怎么做?
Posted
技术标签:
【中文标题】我想要来自 android 中 MMS db 的彩信号码、发送/接收、正文和附件详细信息...怎么做?【英文标题】:I want mms number,sent/received, body and attachment details from MMS db in android... How to do that? 【发布时间】:2011-05-13 01:12:23 【问题描述】:我正在使用“content://mms”内容解析器并获取 mms 数据库。如何从中获取号码、发送/接收、正文和附件详细信息?
【问题讨论】:
"我正在使用 "content://mms" 内容解析器并获取 mms 数据库。" - 这不是 android 的一部分。这是应用程序的一部分,它可能在也可能不在任何给定的 Android 设备上。此外,它没有记录且不受支持,因此可能随时被删除或更改。 那么如何在android中访问短信和彩信数据? 我想要我的应用程序的所有彩信和短信详细信息 【参考方案1】:这个链接实际上对我帮助很大:
试试这个帖子:How to Read MMS Data in Android?
希望这对您有所帮助..:)
我还尝试使用此代码获取一些信息:
private String getMmsText(String id)
Uri partURI = Uri.parse("content://mms/part/" + id);
InputStream is = null;
StringBuilder sb = new StringBuilder();
try
is = getContentResolver().openInputStream(partURI);
if (is != null)
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
String temp = reader.readLine();
while (temp != null)
sb.append(temp);
temp = reader.readLine();
catch (IOException e)
finally
if (is != null)
try
is.close();
catch (IOException e)
return sb.toString();
// Main Text
Cursor cursor = getContentResolver().query(uri, null, selectionPart,
null, null);
if (cursor.moveToFirst())
do
String partId = cursor.getString(cursor.getColumnIndex("_id"));
String type = cursor.getString(cursor.getColumnIndex("ct"));
if ("text/plain".equals(type))
String data = cursor.getString(cursor
.getColumnIndex("_data"));
if (data != null)
// implementation of this method below
body = getMmsText(partId);
else
body = cursor.getString(cursor.getColumnIndex("text"));
while (cursor.moveToNext());
cursor.close();
【讨论】:
以上是关于我想要来自 android 中 MMS db 的彩信号码、发送/接收、正文和附件详细信息...怎么做?的主要内容,如果未能解决你的问题,请参考以下文章
在 Smseagle for AT&T 中用于 mms 的 apn 设置
在 Android 中发送和接收 SMS 和 MMS(Kit Kat Android 4.4 之前)