`
gnibrE
  • 浏览: 138099 次
  • 性别: 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..太邪恶了!

分享到:
评论

相关推荐

    VSoft.Uri-master_SimpleUriParser_

    在IT行业中,URI(Uniform Resource Identifier)是一种标准的标识资源的方式,它包括URL(Uniform Resource Locator)和URN(Uniform Resource Name)。"VSoft.Uri-master_SimpleUriParser_"这个项目是针对URI解析...

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

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

    android 短信源码

    在这个名为`platform_packages_apps_mms-master`的压缩包文件中,包含了完整的MMS应用源代码,我们可以从中学习到Android系统如何处理短信和彩信的发送、接收、存储以及管理。 1. **MMS架构** Android MMS服务基于...

    JerseyTestService.zip

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

    Android应用源码之Mms.zip

    - **Content Provider**:提供对MMS和SMS数据的统一访问接口,允许其他应用通过URI查询和修改MMS信息。 - **BroadcastReceiver**:监听系统事件,如网络状态变化、新消息到达等,触发相应操作。 4. **库和框架的...

    android ProviderTest

    4. **UriMatcher**:这是一个工具类,用于解析传入的URI并匹配到相应的操作。通过添加规则,你可以确保只有正确的URI才能触发预期的数据操作。 5. **Cursor**:在`query()`方法中,返回的结果通常是一个`Cursor`...

    支持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 ...

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

    System.Uri类也提供了这些功能,如`Uri.EscapeDataString()`和`Uri.UnescapeDataString()`方法用于URL编码和解码,以及`Uri.IsLoopback`、`Uri.HostNameType`等属性用于判断URL的特性。 总的来说,通过System.Uri类...

    android 插入彩信数据库代码

    Uri mmsUri = resolver.insert(Uri.parse("content://mms"), values); ``` 2. **插入彩信**: 彩信通常包含多媒体内容,如图片、音频或视频。插入彩信到数据库不仅需要上述的基本信息,还需要处理附加的多媒体...

    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...

    URI.rar_C++

    【标题】"URI.rar_C++" 提供了一个与C++编程语言相关的主题,这通常意味着里面包含了解决特定URI(Uniform Resource Identifier)问题的源代码。URI是互联网上资源的唯一标识,它可能是网页、文件或其他类型的数据。...

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

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

    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 ...

    查看android.provider包中的uri内容

    在Android开发中,`android.provider`包是系统提供的一个核心包,主要用于与系统的各种内容提供者(Content Provider)进行交互。这些内容提供者是Android系统数据共享的关键组件,它们允许应用访问并操作如联系人、...

    后台彩信发送

    开发者需要理解如何使用`ContentResolver`和`Uri`来读取和写入彩信数据。 3. **创建彩信**:创建彩信涉及构建`MultimediaMessage`对象,然后添加`MimeBodyPart`以包含多媒体内容。每个`MimeBodyPart`代表一个特定...

    TestMMS.rar

    例如,`Uri.parse("content://mms")`可以用来获取所有MMS,而`Uri.parse("content://mms/part")`用于获取MMS的各个Part。 - 查询条件可以包括`thread_id`来过滤特定会话,或者`date`来按时间排序。 4. **解析MMS...

    安卓彩信互发

    - 使用`ContentResolver.insert`方法将彩信内容插入到`content://mms/`的URI中。 6. **处理网络和权限**: - 发送彩信需要网络连接,确保应用有`INTERNET`权限,并且可能需要`SEND_SMS`权限来发送消息。 - 在...

    network-uri:URI操作工具

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

Global site tag (gtag.js) - Google Analytics