`
gnibrE
  • 浏览: 136505 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MMs. uri 到 MediaModel . 彩信的各种mediaModel

阅读更多
彩信的媒体大概是这样:
WorkingMessage里有个SlideshowModel
SlideshowModel里一队列SlideModel
SlideModel 是一个队列的MediaModel
MediaModel,可以衍生出AudioModel,RegionMediaModel。
RegionMediaModel包含TextModel,ImageModel,VideoModel这三个分类。

创建MediaModel的构造函数
    public MediaModel(Context context, String tag, String contentType,
            String src, Uri uri) throws MmsException {
        mContext = context;
        mTag = tag;
        mContentType = contentType;
        mSrc = src;
        mUri = uri;
        initMediaSize();
        mMediaActions = new ArrayList<MediaAction>();
    }


    public MediaModel(Context context, String tag, String contentType,
            String src, byte[] data) {
        if (data == null) {
            throw new IllegalArgumentException("data may not be null.");
        }

        mContext = context;
        mTag = tag;
        mContentType = contentType;
        mSrc = src;
        mData = data;
        mSize = data.length;
        mMediaActions = new ArrayList<MediaAction>();
    }


    public MediaModel(Context context, String tag, String contentType,
            String src, DrmWrapper wrapper) throws IOException {
        mContext = context;
        mTag = tag;
        mContentType = contentType;
        mSrc = src;
        mDrmObjectWrapper = wrapper;
        mUri = DrmUtils.insert(context, wrapper);
        mSize = wrapper.getOriginalData().length;
        mMediaActions = new ArrayList<MediaAction>();
    }


mediaModel里面比较重要的的几个成员:
protected String mTag;
protected String mSrc;
protected String mContentType;
private Uri mUri;
private byte[] mData;
protected int mSize;


Tag是类型标签。在SmilHelper里。
    public static final String ELEMENT_TAG_TEXT = "text";
    public static final String ELEMENT_TAG_IMAGE = "img";
    public static final String ELEMENT_TAG_AUDIO = "audio";
    public static final String ELEMENT_TAG_VIDEO = "video";
    public static final String ELEMENT_TAG_REF = "ref";

mSrc 文件名
mContentType在frameworks/base/core/java/com/google/android/mms/ContentType里定义,比如
public static final String TEXT_PLAIN        = "text/plain";
    public static final String TEXT_HTML         = "text/html";
public static final String IMAGE_JPEG        = "image/jpeg";
    public static final String IMAGE_JPG         = "image/jpg";
public static final String VIDEO_UNSPECIFIED = "video/*";
    public static final String VIDEO_3GPP        = "video/3gpp";

uri不说了。
data 是byte[] 的数据
size是文件长度。


彩信的单个附件的uri,
从onActivityResult得到。


像拍照片的uri来的最容易,是Uri uri = Uri.fromFile(file);
  是已经有了file,再来得到uri..太邪恶了!

分享到:
评论

相关推荐

    GetURI:强制无效的 URI 满足 java.net.URI

    读取异常修复异常中抱怨的事情再试一次意识到通过“修复” URL 以便 Java 将根据 rfc3986 (java.net.URI) 接受它,您正在更改字节。 它与原始版本不完全相同。 大多数情况下,这不会导致任何可测量的差异,但有您的...

    JerseyTestService.zip

    Spring+Jersey+Mybatis小实例,为了搭建这个折腾了两天,其中一天是因为jar包版本引起的,一直报异常:java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/...

    支持jdk8版本dubbo-admin

    org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable ...

    VSoft.Uri-master_SimpleUriParser_

    This is a simple Uri parser. TODO : encode/decode

    C#利用System.Uri转URL为绝对地址的方法

    本文实例讲述了C#利用System.Uri转URL为绝对地址的方法。分享给大家供大家参考。具体分析如下: 在使用ASPOSE.Word生成Word文档时可以通过InsertHtml(html)来将图文信息写入Word文档(图片内嵌),但要求html里图片的...

    android ProviderTest

    数据库共享的例子,由 Provider提供

    Java使用默认浏览器打开指定URL的方法(二种方法)

    方法二: 代码如下://判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try{ //创建一个URI实例,注意不是URL java.net.URI uri=java.net.URI.create(“//www.j

    dubbo-admin-2.5.8.war(编译环境JDK8)

    org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or...

    vscode-uri:VS Code及其扩展中使用的URI实现

    vscode-uri 该模块包含VS Code及其扩展使用的URI实现。 它支持将字符串解析为scheme , authority , path , query和fragment URI组件,如下面所定义: : foo://example.com:8042/over/there?name=ferret#nose ...

    network-uri:URI操作工具

    Network.URI.Static Network.URI.Static,允许您以类型安全的方式声明静态URI。 使用基本模块,当声明静态URI时,您需要使用Maybe URI或使用URI并放弃类型安全性。 safeButWrappedInMaybeURI :: Maybe ...

    android开发使用例子

    Uri playUri = Uri.parse("[url=]file:///sdcard/download/everything.mp3[/url]"); returnIt = new Intent(Intent.ACTION_VIEW, playUri); //发送附件 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra...

    DOJO 学习笔记 dojo

    个人在网上收集的资料,并非个人创作,整理好供大家一起分享。 一、 Dojo学习笔记(1. 模块与包) 1 二、 Dojo学习笔记(2....三、 Dojo学习笔记(3....四、 Dojo学习笔记(4.... dojo.graphics.color & dojo.uri.Uri) 33

    使用TcpClient 异步下载网页

    详细代码如下: [c-sharp:nogutter] view plaincopyprint?...13. clientSocket.Connect(URI.Host, URI.Port); 14. StringBuilder RequestHeaders = new StringBuilder();//用来保存HTML协议头部信息

    packages_apps_Updater

    该应用发送GET请求被所述定义的URL updater_server_url资源(或lineage.updater.uri系统属性),并预计作为响应一个JSON具有以下结构: { " response " : [ { " datetime " : 1230764400 , " filename " : " ...

    android_packages_apps_Updater

    该应用发送GET请求被所述定义的URL updater_server_url资源(或lineage.updater.uri系统属性),并预计作为响应一个JSON具有以下结构: { " response " : [ { " datetime " : 1230764400 , " filename " : " ...

    spring data mongodb

    spring boot项目,使用springdata来操作数据库mongodb

    c#主题蜘蛛,指定种子网站和主题词

    C# 编写的主题蜘蛛程序,指定种子网站和主题词

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    查看android.provider包中的uri内容

    可以快速查找android.provider包中所有类的中的URI里面的详细内容,当进入详细内容时 内容没有完全显示时 你可以点击列进行展开 你也可以单击你想看的那行内容 查看那一行的具体信息

Global site tag (gtag.js) - Google Analytics