解析在Android应用程序/ SMIL彩信MIME类型(Parse application/smi

2019-06-26 10:19发布

所以,我所遇到的三类彩信类型:

Plain Text - "text/plain"

Image - "image/jpeg", "image/bmp", "image/gif", "image/jpg", "image/png"

SMIL (Synchronized Multimedia Integration Language) - "application/smil"

所以我没有在落入前两类彩信抓住数据的问题。 但是我有麻烦从MMS敛消息类型的数据application/smil

下面我已经包括了5个不同的示例application/smil ,我已经从我的手机拉彩信。

[31, 22, -1, application/smil, 123_1.smil, 106, null, null, <0000>, 0.smil, null, null, null, <smil>
  <head>
    <layout>
      <root-layout height="160" width="240"/>
      <region fit="meet" height="67%" id="Image" left="0%" top="0%" width="100%"/>
      <region fit="meet" height="33%" id="Text" left="0%" top="67%" width="100%"/>
    </layout>
  </head>
  <body>
    <par dur="8000ms">
      <img region="Image" src="cid:992"/>
    </par>
    <par dur="8000ms">
      <img region="Image" src="cid:993"/>
    </par>
  </body>
</smil>]

[22, 14, -1, application/smil, null, null, null, null, <smil>, smil.xml, null, null, null, <smil>
  <head>
    <layout>
      <root-layout width="320px" height="480px"/>
      <region id="Image" left="0" top="0" width="320px" height="320px" fit="meet"/>
      <region id="Text" left="0" top="320" width="320px" height="160px" fit="meet"/>
    </layout>
  </head>
  <body>
    <par dur="5000ms">
      <img src="8555" region="Image"/>
      <text src="text_0.txt" region="Text"/>
    </par>
  </body>
</smil>]

[13, 11, -1, application/smil, 123_1.smil, null, null, null, <0000>, null, null, null, null, <smil> 
  <head> 
    <layout> 
      <root-layout/>  
      <region fit="scroll" height="30%" id="Text" left="0%" top="70%" width="100%"/>  
      <region fit="meet" height="70%" id="Image" left="0%" top="0%" width="100%"/> 
    </layout> 
  </head>  
  <body> 
    <par dur="10000ms"> 
      <text region="Text" src="cid:928"/> 
    </par> 
  </body> 
</smil>]

[16, 13, -1, application/smil, mms.smil, null, null, null, <AAAA>, AAAA, null, null, null, <smil>
    <head>
        <layout>
            <root-layout width="240" height="160"/>
            <region id="Image" width="100%" height="67%" left="0%" top="0%" fit="meet"/>
            <region id="Text" width="100%" height="33%" left="0%" top="67%" fit="meet"/>
        </layout>
    </head>
    <body>
    <par dur="8000ms"><text src="text__01.txt" region="Text"/></par></body>
</smil>]

[5, 5, -1, application/smil, smil.smil, 106, null, null, <0000>, smil, null, null, null, <smil>
  <head>
    <layout>
      <root-layout height="160" width="240"/>
      <region fit="meet" height="67%" id="Image" left="0%" top="0%" width="100%"/>
      <region fit="meet" height="33%" id="Text" left="0%" top="67%" width="100%"/>
    </layout>
  </head>
  <body>
    <par dur="8000ms">
      <img region="Image" src="cid:351"/>
      <text region="Text" src="cid:352"/>
    </par>
  </body>
</smil>]

正是你如何去解析这种类型的彩信? 如何其他短信应用程序处理不同类型的MMS的吗? 任何帮助将不胜感激。

Answer 1:

所以,问题是,我是创造一个Cursor这样

Uri uri = Uri.parse("content://mms/part");
String[] projection = new String[] { "*" };
String selection = "_id = " + messageId;
Cursor cursor = mContentResolver.query(uri, projection, selection,null, null);

问题是选择ARG确实应该

String selection = "mid = " + messageId;

现在我的游标包含多个条目:

  1. 一个条目将对应于SMIL文件。 SMIL是一个包含XML,可以帮助一个彩信浏览器知道如何显示MMS的文件格式。 MIME类型此条是application / SMIL,如果你看一下柱称为克拉(缩写为内容类型)

  2. 另一个条目将对应于包含除了附件是MMS内的任何文本的文本文件。 MIME类型的,这将是纯文本/

  3. 最后,你会发现,其实带有附件的另一个条目。 此附件可以有多种不同的文件是什么不同的MIME类型。 如果碰巧是JPEG这将是图像/ JPEG,如果为png这将是图像/ PNG等...

我要感谢@wnafee在这篇文章指出了这一点Android的:如何处理应用程序/ SMIL MIME类型做 。



Answer 2:

你可以开始在这里它的Android彩信浏览器。 支持SMIL。 我用这个代码为我的当前项目SMIL播放器为Android。



Answer 3:

W3具有与SMIL工作的一个很好的库。 看看这里http://www.w3.org/TR/1999/WD-smil-boston-dom-19991115/java-binding.html



文章来源: Parse application/smil MMS MIME type on android