解析接收的图像和文本的彩信

问题描述:

我正在开发一个适用于android的SMS-MMS电子仓库应用程序。其目的是纠正Android中存在的一些漏洞,并在特定联系人(加密的SMS和MMS)之间创建“安全”通信空间。解析接收的图像和文本的彩信

我已经实现了所有的功能,除了接收MMS的功能。我没有找到关于此事的文件。我一直在阅读了很多从实现这个功能,他们都等待股票应用程序接收彩信,然后检索它,这是不是我要找的,我的应用程序,就是要其他应用程序代码默认的一个。

所以,在这里回避我的问题:

接收彩信的意图,我该如何解析图像和文本之后?

所以,你能做些什么来获取图片是去我得到了MMS的id和经历(“内容:// MMS /部”) 做类型检查:

String type = cursor.getString(cursor.getColumnIndex("ct")); 
String partId = cursor.getString(cursor.getColumnIndex("_id")); 


//is type a picture 
if ("image/jpeg".equals(type) || "image/bmp".equals(type) 
    || "image/gif".equals(type) || "image/jpg".equals(type) 
    || "image/png".equals(type)) { 
        getMmsImage(partId); // load in your picture 
     } 

现在你,你让你知道图片的位置的部件ID,所以你可以使用你想要比如什么,如果你只是希望它加载它作为一个位图,你可以这样做:

public Bitmap getMmsImage(String _id, Context context) { 

     Uri partURI = Uri.parse("content://mms/part/" + _id); 
     InputStream is = null; 
     Bitmap bitmap = null; 
     try { 
      is = context.getContentResolver().openInputStream(partURI); 
      bitmap = BitmapFactory.decodeStream(is); 

     } catch (Exception e) {// probably should do an ioException around here} 
     finally { 
      if (is != null) { 
       try { 
        is.close(); 
       } catch (IOException e) {} 
      } 
     } 
     return bitmap; 
    } 

现在我想指出的是,如果你想要动画GIF这不会工作,它会加载的GIF,但他们仍然是我法师。如果你想让它们动起来,你可以使用类似Glide的东西,并为它指定uri的路径位置。滑翔需要一段时间才能加载gif,只是公平的警告。

至于接收彩信时,你总是可以使用观察和负载所增加的消息在每当观察者说有变化......或者,如果你希望它是默认的信使使用广播接收器。