我想要来自 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 之前)

MMS彩信字符集(字符编码)

手机一直出现com.android.mms怎么办

手机端ios和android浏览器 如何实现mms广播电台在线音频播放?

一条SMS最大字符数,字符数达到多少按MMS处理