too*_*o42 1 sms android mms mime-types
所以我遇到了三类彩信类型:
Plain Text - "text/plain"
Image - "image/jpeg", "image/bmp", "image/gif", "image/jpg", "image/png"
SMIL (Synchronized Multimedia Integration Language) - "application/smil"
所以我在获取属于前两类的 MMS 中的数据时没有问题。但是我无法从消息类型的 MMS 中获取数据 application/smil
下面我列出application/smil
了我从手机中提取的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>]
Run Code Online (Sandbox Code Playgroud)
.
[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>]
Run Code Online (Sandbox Code Playgroud)
.
[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>]
Run Code Online (Sandbox Code Playgroud)
.
[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>]
Run Code Online (Sandbox Code Playgroud)
.
[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>]
Run Code Online (Sandbox Code Playgroud)
你究竟是如何解析这种类型的彩信的?其他短信应用程序如何处理不同类型的彩信?任何帮助将不胜感激。
所以问题是我正在创建一个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);
Run Code Online (Sandbox Code Playgroud)
问题是选择 arg 真的应该是
String selection = "mid = " + messageId;
Run Code Online (Sandbox Code Playgroud)
现在我的光标包含多个条目:
一个条目将对应于 SMIL 文件。SMIL 是一种包含 xml 的文件格式,可帮助 MMS 查看者了解如何显示 MMS。如果您查看名为 ct(内容类型的首字母缩写词)的列,则此条目的 MIME 类型为 application/smil
另一个条目将对应于包含该 MMS 中除附件之外的任何文本的文本文件。此 MIME 类型将是 text/plain
最后,您会发现另一个实际包含附件的条目。这个附件可以有多种不同的 MIME 类型,这取决于文件是什么。如果它恰好是 jpeg,它将是 image/jpeg,如果它是 png,它将是 image/png 等...
我要感谢 @wnafee 在这篇文章中指出这一点Android: what to do with application/smil MIME type。
归档时间: |
|
查看次数: |
46726 次 |
最近记录: |