彩信的媒体大概是这样:
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..太邪恶了!
分享到:
相关推荐
在IT行业中,URI(Uniform Resource Identifier)是一种标准的标识资源的方式,它包括URL(Uniform Resource Locator)和URN(Uniform Resource Name)。"VSoft.Uri-master_SimpleUriParser_"这个项目是针对URI解析...
读取异常修复异常中抱怨的事情再试一次意识到通过“修复” URL 以便 Java 将根据 rfc3986 (java.net.URI) 接受它,您正在更改字节。 它与原始版本不完全相同。 大多数情况下,这不会导致任何可测量的差异,但有您的...
在这个名为`platform_packages_apps_mms-master`的压缩包文件中,包含了完整的MMS应用源代码,我们可以从中学习到Android系统如何处理短信和彩信的发送、接收、存储以及管理。 1. **MMS架构** Android MMS服务基于...
Spring+Jersey+Mybatis小实例,为了搭建这个折腾了两天,其中一天是因为jar包版本引起的,一直报异常:java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/...
- **Content Provider**:提供对MMS和SMS数据的统一访问接口,允许其他应用通过URI查询和修改MMS信息。 - **BroadcastReceiver**:监听系统事件,如网络状态变化、新消息到达等,触发相应操作。 4. **库和框架的...
4. **UriMatcher**:这是一个工具类,用于解析传入的URI并匹配到相应的操作。通过添加规则,你可以确保只有正确的URI才能触发预期的数据操作。 5. **Cursor**:在`query()`方法中,返回的结果通常是一个`Cursor`...
org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable ...
System.Uri类也提供了这些功能,如`Uri.EscapeDataString()`和`Uri.UnescapeDataString()`方法用于URL编码和解码,以及`Uri.IsLoopback`、`Uri.HostNameType`等属性用于判断URL的特性。 总的来说,通过System.Uri类...
Uri mmsUri = resolver.insert(Uri.parse("content://mms"), values); ``` 2. **插入彩信**: 彩信通常包含多媒体内容,如图片、音频或视频。插入彩信到数据库不仅需要上述的基本信息,还需要处理附加的多媒体...
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++" 提供了一个与C++编程语言相关的主题,这通常意味着里面包含了解决特定URI(Uniform Resource Identifier)问题的源代码。URI是互联网上资源的唯一标识,它可能是网页、文件或其他类型的数据。...
方法二: 代码如下://判断当前系统是否支持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实现。 它支持将字符串解析为scheme , authority , path , query和fragment URI组件,如下面所定义: : foo://example.com:8042/over/there?name=ferret#nose ...
在Android开发中,`android.provider`包是系统提供的一个核心包,主要用于与系统的各种内容提供者(Content Provider)进行交互。这些内容提供者是Android系统数据共享的关键组件,它们允许应用访问并操作如联系人、...
开发者需要理解如何使用`ContentResolver`和`Uri`来读取和写入彩信数据。 3. **创建彩信**:创建彩信涉及构建`MultimediaMessage`对象,然后添加`MimeBodyPart`以包含多媒体内容。每个`MimeBodyPart`代表一个特定...
例如,`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.Static Network.URI.Static,允许您以类型安全的方式声明静态URI。 使用基本模块,当声明静态URI时,您需要使用Maybe URI或使用URI并放弃类型安全性。 safeButWrappedInMaybeURI :: Maybe ...