中国联通数字蜂窝移动通信网MMS业务CPSP业务开发规范V1.doc_第1页
中国联通数字蜂窝移动通信网MMS业务CPSP业务开发规范V1.doc_第2页
中国联通数字蜂窝移动通信网MMS业务CPSP业务开发规范V1.doc_第3页
中国联通数字蜂窝移动通信网MMS业务CPSP业务开发规范V1.doc_第4页
中国联通数字蜂窝移动通信网MMS业务CPSP业务开发规范V1.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2006-04-20实施2006-04-20发布中国联通公司发布中国联通数字蜂窝移动通信网多媒体消息业务(MMS)CP/SP业务开发规范China Unicom Digital Cellular Mobile Communication NetworkCP/SP Service Development Specification for Multimedia Message Service(V1.0)QB/CU 0222006中国联通公司企业标准50 / 55目 次前 言IV1 范围12 规范性引用文件13 术语与缩略语14 CP/SP业务开发方法14.1 开发方法14.1.1 发送多媒体消息的过程(下行业务) 初始化配置参数 创建发送线程 构造待发送消息 发送消息34.1.2 接收多媒体消息的过程(上行业务) 方式1:普通应用程序中的用法 方式2:WEB应用程序中的用法44.1.3 流程图44.1.4 代码样例54.2 细节点击94.2.1 递送报告94.2.2 上行业务类型的区分94.2.3 发送消息时返回状态码的含义 HTTP层返回状态码 SOAP接口的错误状态码及状态文本104.2.4 对CP/SP的计费方式124.2.5 如何实现群发134.2.6 消息内容体中的ID134.2.7 标题的编码方式134.2.8 文本内容的编码方式134.2.9 目前主要使用的消息内容体格式134.2.10 填充消息内容体时的注意事项144.2.11 使用SMIL格式传输消息时的注意事项144.2.12 上行业务处理方式的比较164.2.13 日志164.2.14 配置文件165 CP/SP业务测试方法185.1 测试环境185.2 接口测试185.2.1 下行接口测试 主送地址的填写 中文标题字符集测试 英文标题字符集测试 中英文及数字混合标题字符集测试 中文消息内容字符集测试 英文消息内容字符集测试 中英文混合消息内容字符集测试 混合内容MM标题及MM内容测试项目 GIF87a图片内容测试0 GIF89a图片内容测试1 JPG图片内容测试2 AMR声音内容测试3 IME声音内容测试4 MID声音内容测试5 各种媒体混合测试6 MMS消息内容体smil文件测试27 接收方号码的长度合法性判断28 接收方号码的字符合法性判断29 接收方号码的归属判断20 发送MM消息的大小判断21 发送MM消息时对不可达终端的判断22 对HTTP长连接的测试23 多个主送地址的填写(可选)304 主送、抄送地址同时填写(可选)305 主送、密送地址的填写(可选)36 抄送地址的填写(可选)37 密送地址的填写(可选)38 多个主送、抄送地址的填写(可选)39 多个主送、密送地址的填写(可选)30 多个主送、抄送地址、密送地址的填写(可选)31 WBMP图片内容测试(可选)345.2.2 上行接口测试3 接收消息处理功能测试(英文标题)3 接收消息处理功能测试(中文标题)3 接收消息处理功能测试(中文字符、英文字符、数字混合标题)3 接收消息处理功能测试(文本内容)3 接收消息处理功能测试(混合内容MM标题及MM内容测试项目)3 接收消息处理功能测试(图片内容)3 接收消息处理功能测试(声音内容)3 接收消息处理功能测试(各种格式混合内容)3 接收递送请求处理测试30 接收递送报告处理测试405.3 业务测试415.3.1 AO-MT4 应用到终端(订购成功)4 应用到终端(订购不成功)425.3.2 MO-AT435.3.3 递送报告4 递送报告(发送方请求,接收方不拒绝)4 递送报告(发送方请求,接收方拒绝)445.4 计费测试445.4.1 计费号码的填充445.5 性能测试455.5.1 接收消息性能(可选)45附录A47附录B48前 言本规范规定了多媒体消息业务的CP/SP业务开发方法和测试方法,为CP/SP开发多媒体消息业务增值应用并将自己的内容与服务接入MMSC提供开发依据和测试依据。本规范包括两部分内容,第一部分为CP/SP业务开发方法,第二部分为CP/SP业务测试方法。本规范附录A为API开发文档,附录B为MMSC产生的话单文件格式。本规范版本为V1.0。本规范主要起草单位:信息产业部电信传输研究所。本标准主要起草人:严砥 梁鹏 董晓宇。本规范的修改和解释权属中国联通公司增值业务部。中国联通数字蜂窝移动通信网多媒体消息业务(MMS)CP/SP业务开发规范1 范围本规范适用于CP/SP开发和测试多媒体消息业务应用并与MMSC进行对接,以保证各CP/SP通过标准的MM7接口将自己的内容与服务接入MMSC。2 规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。1 中国联通数字蜂窝移动通信网多媒体消息业务(MMS)规范(V1.0)2 中国联通数字蜂窝移动通信网多媒体消息业务(MMS)设备规范(V1.0)3 术语与缩略语企业代码:网络中CP/SP公司地址和身份的标识。服务代码:服务代码是在点播类业务中,提供给用户点播的内容/应用服务提供商代码。业务代码:业务代码表示业务类别,由内容/应用服务提供商自己制定。下行业务:由CP/SP主动发起的业务,例如CP/SP到点业务。上行业务:CP/SP被动接收的业务,例如点到CP/SP业务。递送报告:指接收方(终端)对接收到的消息的处理方式的信息,MMSC在获取这个信息后会把这个信息发送给发送方(CP/SP)。接收方对消息的处理可能是接收或者拒绝等方式。对于企业代码、服务代码和业务代码的详细说明参见中国联通现行规定。4 CP/SP业务开发方法4.1 开发方法在所有的使用SDK开发的应用程序中,都要使用下面的语句把SDK中对应的class引入:import com.cmcc.mm7.vasp.pdu.*;import com.cmcc.mm7.vasp.message.*;import com.cmcc.mm7.vasp.service.*;import com.cmcc.mm7.vasp.conf.*;import mon.*;4.1.1 发送多媒体消息的过程(下行业务)发送多媒体消息的过程就是使用SDK组织消息并通过SDK的自身通讯机制发送给MMSC的过程,主要步骤如下,具体范例见4.4节。 初始化配置参数使用MM7Config类初始化配置参数,参数为配置文件mm7Config.xml的路径:MM7Config mm7Config = new MM7Config( d:mm7Config.xml); 创建发送线程创建发送线程使用的是MM7Sender类,其中已经封装了和MMSC连接的通讯机制,创建MM7Sender的一个实例即可。MM7Sender sender = new MM7Sender(mm7Config); 构造待发送消息创建待发送消息使用的是消息的实体类:MM7SubmitReq、MM7CancelReq和MM7ReplaceReq,主要设置的就是消息的标题、消息类型、是否需要递送报告、添加接收发地址、设置消息体内容等。下面以MM7SubmitReq为例,说明如何构造消息。1、创建消息对象:MM7SubmitReq req = new MM7SubmitReq();2、设置消息各种属性:req.setVASPID(1111); /VASPIDreq.setVASID(2222); /VASIDreq.setSender(2222333); / 消息发送方(VASID + ServiceCode)req.addTo(11111111); /消息接收方,对于多个接收方可多次调用addTo(),addCc(),addBcc()req.setServiceCode(333); /业务代码req.setLinkID(9999); /LinkIDreq.setSubject (“消息标题”); /设置消息的标题req.setDeliveryReport( true/false ); /设置是否需要递送报告req.setReadReply(true/false); /设置是否需要阅读报告req.setMessageClass(MMConstants.MessageClass.PERSONAL); /设置消息类型req.setPriority(MMConstants.Priority.LOW); /设置消息的优先级(其他的消息属性设置可以参见4.4节)3、创建多个消息内容体并添加到多媒体消息对象中:每个消息内容体就是一个MMSContent实例。可以添加多个消息内容体,但是所有消息内容体的大小之和不能超过MMSC允许大小。A)先构造一个媒体容器MMContent mainContent = new MMContent();mainContent.setContentType(MMConstants.ContentType. MULTIPART_MIXED);req.setContent(mainContent); /添加到消息中B)添加具体媒体内容 / 构造一个媒体,此处添加的只是一个文本串 MMContent mmc = new MMContent(); mmc.setData(new String(“just a test”).getBytes(); /添加内容体 mmc.setContentType(MMConstants.ContentType.TEXT); /设置内容体格式 mmc.setContentID(aaID); /设置内容ID mainContent.addSubContent(mmc); /将创建好的内容添加到消息 / 构造一个媒体,此处添加的是一个图片 mmc = MMContent.createFromFile(new File(D:1b932H.gif); mmc.setContentID(gif); mainContent.addSubContent(mmc); /将创建好的内容添加到消息 发送消息发送消息只要调用MMSender实例的send()方法即可:MM7Message rsp = sender.send(req); 返回响应消息rsp,使用rsp.getStatus()和rsp.getStatusText()方法获取消息发送的结果状态和状态描述。4.1.2 接收多媒体消息的过程(上行业务)CP/SP接收有可以有两种方式:如果CP/SP的增值应用是一个普通应用程序,可以使用方式1,则接收代理会自动开辟一个监听端口,启动一个监听线程来接收来自MMSC的多媒体消息。如果CP/SP的增值应用是一个Web应用,则可以使用方式2,则接收代理作为一个Servlet运行,并自动处理从HttpRequest中搜集数据解码成多媒体消息。 方式1:普通应用程序中的用法1、用户实现消息处理接口继承MM7Receiver抽象类,实现doDeliver、doDeliveryReport、doReadReply方法。该方法在多媒体消息到达时回调。CP/SP要对接收到的MM进行一些特定的操作,并根据请求消息构造相应的响应消息返回给MMSC。例如: public MM7VASPRes doDeliver(MM7DeliverReq request) / 构造响应消息 MM7DeliverRes deliverRes = new MM7DeliverRes(); deliverRes.setServiceCode(service code 000); deliverRes.setStatus(1000); deliverRes.setStatusText(statustext); / 这个TransactionID保证MMSC能成功处理响应消息 deliverRes.setTransactionId(request.getTransactionId(); return deliverRes;2、创建接收消息的主程序:指为接收从MMSC过来的消息开辟一个接收端口。使用MMReciecer类,运行时是一个独立的线程,专门侦听从MMSC传递过来的MM,该类中封装了同MMSC连接的通讯方法。侦听的IP地址和端口在配置文件中设置即可。MM7Config mm7Config = new MM7Config( D:imm7Config.xml); /初始化参数NormalRecieverTest receiver = new NormalRecieverTest(mm7Config); /创建实例receiver.setReceiver(receiver); /设置消息接收处理对象receiver.start(); /启动线程3、在实现MM7Receiver的类的构造方法中,设置配置参数对象。super.setConfig(mm7Config);4、停止接收线程receiver.stop(); 方式2:WEB应用程序中的用法Web方式接收消息更简单,用户只要继承MM7ReceiveServlet类并实现其定义的抽象方法doDelivery、doDeliveryReport、doReadReply和init即可实现消息的接收。此时多媒体消息接收代理以Servlet的方式运行,用户只需要把代码连同Web应用的其他部分一起发布到WebServer上即可。例如:public class MyReceiver extends MM7RecieveServletpublic MM7VASPRes doDeliver(MM7DeliveryReq request) System.out.println(“收到手机”+request.getSender()+“提交的消息,标题为:”+request.getSubject();return(MM7VASPRes)mm7DeliverRes; public void init( ServletConfig servletConfig ) throws ServletException MM7Config mm7Config = new MM7Config(F: mm7Config.xml); 4.1.3 流程图图4-1是典型的CP/SP与MMSC消息处理流程图,请对照4.1小节和4.2小节的说明,代码实例请参见4.4节。图1 消息处理流程图4.1.4 代码样例下面给出的是使用vassdk_soap.jar开发简单的CP/SP端程序的样例:package com.cmcc.mm7.vasp.demo;/ import from mmsimport com.cmcc.mm7.vasp.pdu.*;import com.cmcc.mm7.vasp.message.*;import com.cmcc.mm7.vasp.service.*;import mon.*;import com.cmcc.mm7.vasp.conf.*;/ import from jdkimport java.util.*;import java.io.*;public class MainTest extends MM7Receiver HashMap transIDMap = new HashMap(); public MainTest(MM7Config config) super.setConfig(config); /* * 处理Deliver消息,由子类实现 * * param request * return MM7VASPRes */ public MM7VASPRes doDeliver(MM7DeliverReq request) / 打印请求消息 System.out.println(NormalReceiverTest DeliverReq:); System.out.println(request.toString(); / 构造响应消息 MM7DeliverRes deliverRes = new MM7DeliverRes(); deliverRes.setServiceCode(service code 000); deliverRes.setStatus(1000); deliverRes.setStatusText(statustext); / 这个TransactionID保证MMSC能成功处理响应消息 deliverRes.setTransactionId(request.getTransactionId(); return deliverRes; /* * 处理DeliveryReport消息,由子类实现 * * param request * return MM7VASPRes */ public MM7VASPRes doDeliveryReport(MM7DeliveryReportReq request) / 打印请求消息 System.out.println(NormalReceiverTest DeliveryReport:); System.out.println(request.toString(); /根据transID判断 if (transIDMap.containsKey(request.getTransactionId() System.out.println(Get Deliver.Req message, TransactionID: + request.getTransactionId(); / 构造响应消息 MM7DeliveryReportRes deliveryReportRes = new MM7DeliveryReportRes(); deliveryReportRes.setStatus(1000); deliveryReportRes.setStatusText(delivery report text); / 这个TransactionID保证MMSC能成功处理响应消息 deliveryReportRes.setTransactionId(request.getTransactionId(); /将消息从MAP中删除 transIDMap.remove(request.getTransactionId(); return deliveryReportRes; else System.out.println(Get error Deliver.Req message, TransactionID: + request.getTransactionId(); MM7VASPErrorRes errorRes = new MM7VASPErrorRes(3001, Error Deliver.Req message); return errorRes; /* * 处理ReadReply消息,由子类实现 * * param reqeust * return MM7VASPRes */ public MM7VASPRes doReadReply(MM7ReadReplyReq request) / 打印请求消息 System.out.println(NormalReceiverTest ReadReply:); System.out.println(request.toString(); / 构造响应消息 MM7ReadReplyRes readReplyRes = new MM7ReadReplyRes(); readReplyRes.setStatus(1000); readReplyRes.setStatusText(status text.); / 这个TransactionID保证MMSC能成功处理响应消息 readReplyRes.setTransactionId(request.getTransactionId(); return readReplyRes; public void main(String args) /初始化配置参数 MM7Config mm7Config = new MM7Config( F:V100R00101.CI1.5 Codevasapimm7Config.xml); /启动一个接收线程 MainTest receiver = new MainTest(mm7Config); receiver.setReceiver(receiver); receiver.start(); MM7Sender sender = new MM7Sender(mm7Config); /创建MM7Sender对象 / 可以根据需要增加一个循环,自动发送 MM7SubmitReq req = new MM7SubmitReq(); /构造消息 req.setVASPID(111111); req.setVASID(2222); req.setSender(2222333); / VASID + ServiceCode req.addTo(61234567); req.setServiceCode(333); req.setLinkID(9999); req.setMessageClass(Personal); req.setDate(new Date(); req.setExpiry(10000000); req.setDeliveryReport(true); req.setReadReply(true); req.setPriority( (byte) 0); req.setReplyDeadline(new Date(); req.setSubject(This is submitReq); req.setAdaptations(true); req.setChargedParty(MMConstants.ChargedParty.SENDER); req.setDistributionIndicator(true); / 先构造一个媒体容器 MMContent mainContent = new MMContent(); mainContent.setContentType(MMConstants.ContentType.MULTIPART_RELATED); mainContent.setContentID(aaaaaa); req.setContent(mainContent); / 构造一个媒体,此处添加的只是一个文本串 MMContent mmc = new MMContent(); mmc.setData(new String(wwwwwwwww).getBytes(); /添加内容体 mmc.setContentType(text/plain); /设置内容体格式 mmc.setContentID(aaID); mainContent.addSubContent(mmc); /将创建好的内容添加到消息 /将消息以TransID为主键保存,接收线程接收到递送报告时,再将该消息从map中删除。 transIDMap.put(req.getTransactionId(), req); MM7Message rsp = sender.send(req); if (rsp.getStatus() != MMConstants.RequestStatus.SUCCESS) /发送失败处理 4.2 细节点击4.2.1 递送报告在发送消息时要调用MM7SubmitReq的setDeliveryReport(true)方法设置要求递送报告,MMSC就会在接收方处理MM后返回给CP/SP不同的递送报告。在递送报告中调用MM7DeliveryReportReq的getMessageId()方法会得到该递送报告对应的MM的ID,调用MMessage的getMMStatus()方法会得到该消息被接收方的处理结果,主要结果有:0:表明MM过期,可能是用户接收到MM后没有对MM进行任何操作,或者延时取MM等待时间过长;1:表明接收方已接收MM;2:表明MM被系统拒绝;3:表明MM被用户拒绝;4:表明是未知的状态;5:表明MM被转发;群发时,一个消息会对应多个递送报告,这些递送报告中的消息ID都是一样的,但是接收方地址不一样。4.2.2 上行业务类型的区分目前在上行业务中(终端到CP/SP),CP/SP接收到的消息只有两种:MM7_DELIVERY_REQ(递送请求,可能是终端发送的消息)和MM7_DELIVERY_REPORT_REQ(递送报告,对应一个CP/SP发送的消息)。区分它们的方法是,调用MM7VASPReq的getMessageType()方法可以获取消息类型:0x02 : MM7_ DELIVERY _REQ(递送消息,终端到SP消息)0x08 : MM7_DELIVERY_REPORT_REQ(递送报告)4.2.3 发送消息时返回状态码的含义SOAP协议是承载于HTTP协议基础上的协议,所以只有在HTTP层返回成功状态码2xx时,SOAP层的相应状态码才有意义。当HTTP层返回的状态码不是2xx时,不需要处理SOAP层的相应消息(这时可能也没有对应的SOAP消息体)。 HTTP层返回状态码此处列出几种常见的可能出现的HTTP层返回状态码,在实际情况中如果出现其他状态码,请参见相关HTTP协议说明。状态码状态文本说明200OK消息提交成功,此时返回的有对应的SOAP消息体,需要处理相应SOAP消息体404Not Found请求的地址不存在,此时不需要处理SOAP消息体 SOAP接口的错误状态码及状态文本SOAP接口状态码由一个四位数值组成的状态码。状态码的第一位表示代码的类别。共有四个类别: 1xxx:操作成功; 2xxx:客户机错误; 3xxx:服务器错误; 4xxx:业务错误。状态码状态文本说明含义1000Success请求执行成功此代码指示完全执行了请求。1100Partial success部分成功此代码指示部分执行了请求,但部分请求无法完成。可选“详细信息”单元可以指示未完成的请求部分。2000Client error客户端错误客户机发出的请求无效。2001Operation restricted操作受限由于缺少执行命令的权限,请求被拒绝。Operation restricted : Flow refuse流量限制2002Address error地址错误请求中所提供地址的格式无法识别或MMSRelay/ServerRelay/Server确认地址对于网络无效,因为此MMSRelay/ServerRelay/Server不会对其提供服务。如果该地址用于响应结果中,并且在相应的推式(push)提交中指定了多个接收方,则此状态码指示至少有一个地址不正确。Address error : Unreachable Recieption不可到达的终端Address error : Sender Barred发送方号码不合法Address error : Rejected接收方终端是未知类型终端或者非MMS终端并且号段归属本地MMSC2003Address not found找不到地址MMSRelay/ServerRelay/Server找不到请求中提供的地址。如果在以前提交的消息中请求了操作但MMSRelay/ServerRelay/Server找不到指定地址的消息,则将返回此代码。2004Multimedia content refused多媒体内容被拒绝服务器无法解析附加至SOAP消息并通过“内容”单元指示的MIME内容,或无法接受该内容大小或媒体类型。Multimedia content refused : Message is too large消息过大Multimedia content refused : Media type refused不容许的媒体类型2005Message ID not found找不到消息ID如果在以前提交的消息中请求了操作,但MMSRelay/ServerRelay/Server找不到指定消息ID的消息,或者VASP收到有关无法识别以前所提交消息和消息ID的报告,将返回此代码。2006Linked ID not found找不到链接ID如果已提供LinkedID,但MMSRelay/ServerRelay/Server找不到相关消息,将返回此代码。2007Message format corrupt消息格式破坏信息单元值格式不合适或不正确。3000Server error服务器错误服务器未能实施明显有效的请求。3001Not possible消息不可接受由于不可接受,而无法执行请求。此状态码通常在以下情况中使用:当对不能再被取消或状态查询的消息进行取消或状态查询操作时。MMSRelay/ServerRelay/Server已识别所述消息,但由于该消息已完成或其状态不再可用而无法实施。3002Message rejected消息被拒绝服务器无法完成请求的服务。3003Multiple addresses not supported不支持多个地址MMSRelay/ServerRelay/Server不支持对多个接收方执行此操作。该操作可以作为多个单一的接收方操作重新提交。3501Too many recipient addresses超出系统容许的最大接收方数目超出MMSRelay/ServerRelay/Server支持的最大接收方数目。该操作可以作为多个单一的接收方操作重新提交。4000General service error一般服务错误无法实施请求的服务。4001Improper identification标识不正确(是否在头部包含相关字段,例如vaspid等)请求的标识标题不能唯一标识客户机(VASP或MMSRelay/ServerRelay/Server)。4002Unsupported version版本不支持不支持MM7版本单元所指示的版本。4003Unsupported operation操作不支持服务器不支持消息标题中“消息类型”单元所指示的请求。4004Validation error验证错误无法解析SOAP和XML结构、缺少必备字段或消息格式与指定格式不兼容。“详细信息”字段可能会给出导致此状态的解析错误。Validation error : Decoder failedSOAP解码失败Validation error : Error request type错误的请求类型Validation error : Soap message is null从HTTP请求中获取不到SOAP消息Validation error : Field xxxxx must be filled缺少必要的字段xxxxxValidation error : Field xxxxx incorrect字段xxxxx填写不正确4005Service error服务错误操作导致服务器(MMSRelay/ServerRelay/Server或VASP)失败,不应重新发送。Service error : Server timeout从SERVER获取响应超时4006Service unavailable无法提供服务当服务器暂时不可用(例如,服务器忙、系统过负荷)时,服务器可能会发送此指示。Service unavailable : System is busyMMSC系统处于忙状态4007Service denied服务被拒绝客户机无权执行所请求的操作。Service denied : Authority failed对CP/SP签权失败4.2.4 对CP/SP的计费方式目前对CP/SP的计费要求在发送MM的时,在MM7SubmitReq消息的ChargedParty字段中填写付费方,指明CP/SP所提交MM的付费方,例如,发送方、接收方、发送方和接收方、两方均不付费、第三方付费,在付费方既不是发送方,也不是接收方的情况下,需要使用Charged party ID字段标识付费方的E.164号码,这样在MMSC系统中对这条MM的计费就是对付费方号码计费。ChargedParty字段填写值的含义:0:发送方和接收方都不付费;1:发送方付费;2:接收方付费;3:发送方和接收方都付费;4:第三方付费;在群发时因为一次可以填写多个接收方地址但是只有一个ChargedParty,这时会对这个付费方号码计费多次。4.2.5 如何实现群发对于一条消息,目前支持一次发送给多个接收方地址。可以调用MM7SubmitReq的addTo()、addCc()、addBcc()方法分别添加接收方地址、抄送方地址和密送方地址,但是一次发送的地址的总数不能超过系统配置。另外对于一次发送多个地址的情况,在MMSC系统中会对业务定制方计费多次。4.2.6 消息内容体中的ID在组装消息内容(MMSContent)的时候,一定要设置该消息内容的ID,可调用的方法有setContentId()和setContentLocation()两个方法。在消息的格式是MULTIPART_MIXED格式时,只要调用setContentId()方法即可,如果消息格式是MULTIPART_RELATED时,setContentId()和setContentLocation()两个方法都要调用,并且建议这两个方法设置的值一致。对各个消息内容体设置的消息ID一定要是唯一的,否则会发生消息内容混乱。4.2.7 标题的编码方式标题的编码目前在程序内部使用的是UTF8方式,所以在使用MM7SubmitReq的setSubject()方法时要保证传入的标题字符是unicode格式的。可以通过使用new String()方法对标题作一次强制转换。4.2.8 文本内容的编码方式文本内容的编码要求是UTF8方式,所以在把文本内容转换为byte数组的时候,要保证转换前是unicode格式的。可以通过使用new String()方法对文本内容作一次强制转换。4.2.9 目前主要使用的消息内容体格式可以参见WAP-203-WSP (WAP Forum)文档相关部分。下面是目前MMS手机支持的主要格式:audio/midaudio/midiaudio/x-midaudio/x-midiaudio/sp-midiimage/vnd.wap.wbmpimage/jpegimage/gifimage/bmpimage/vnd.nok-oplogo-colorimage/pngimage/vnd-nok-camera-snsp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论