1

そのため、MMS メッセージ タイプの 3 つのカテゴリに遭遇しました。

Plain Text - "text/plain"

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

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

したがって、最初の 2 つのカテゴリに分類される MMS でデータを取得することに問題はありません。ただし、メッセージタイプの MMS からデータを取得するのに問題があります application/smil

以下にapplication/smil、携帯電話から取り出した MMS メッセージの 5 つの異なる例を示します。

[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 をどのように正確に解析しますか? 他のテキスト メッセージ アプリは、さまざまな種類の MMS をどのように処理しますか? どんな助けでも大歓迎です。

4

3 に答える 3

5

だから問題は、私が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);

問題は、選択引数が実際にあるべきであることです

String selection = "mid = " + messageId;

現在、カーソルには複数のエントリが含まれています。

  1. 1 つのエントリが SMIL ファイルに対応します。SMIL は、MMS ビューアが MMS の表示方法を知るのに役立つ xml を含むファイル形式です。ct (コンテンツ タイプの頭字語) という列を見ると、このエントリの MIME タイプは application/smil です。

  2. 別のエントリは、添付ファイル以外の MMS 内のテキストを含むテキスト ファイルに対応します。これの MIME タイプは text/plain になります

  3. 最後に、実際に添付ファイルがある別のエントリを見つけます。この添付ファイルは、ファイルの内容に応じてさまざまな MIME タイプを持つことができます。たまたま jpeg の場合は image/jpeg になり、png の場合は image/png になります。

この投稿Android: what to do with application/smil MIME typeでこれを指摘してくれた @wnafee に感謝します。

于 2012-10-23T03:44:27.920 に答える
2

ここから始めることができます Android MMS ビューアーです。SMIL をサポートします。このコードは、現在のプロジェクトの Android 用 SMIL プレーヤーに使用します。

于 2012-07-24T06:58:33.917 に答える
0

w3 には、SMIL を操作するための優れたライブラリがあります。ここでチェックしてください http://www.w3.org/TR/1999/WD-smil-boston-dom-19991115/java-binding.html

于 2012-08-23T23:36:24.747 に答える