已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书基于J2ME的彩信收发系统河北科技师范学院2011年6月河北科技师范学院基于J2ME的彩信收发系统学 生 姓 名: 指 导 教 师: 系 别: 专业 、班级: 填 表 时 间: Dissertation for the GraduationRECEIVE AND SEND MMS SYSTEM BASE ON J2MECandidate: Supervisor: Department: Specialty: Date of OralExamination: 目录目录摘要IIIAbstractIII1 引言11.1系统开发背景及现状11.2 系统开发的目的11.3系统开发关键技术21.3.1 J2ME技术简介21.3.2 MIDlet生命周期21.3.3 FileConnection的简介31.3.4 J2ME技术的优势32 需求分析42.1 系统需求42.2 功能需求52.3性能需求52.3.2 软件环境53系统总体设计63.1系统的开发原理63.1.1 WAP无线应用协议简介63.1.2 push注册机制简介73.1.3 Media 音频子系统简介73.2.1总体框架设计103.2.2流程设计113.3.1 启动模块123.3.2 发送模块123.3.3 增加附件模块133.3.4 查看短信模块133.3.5 查看多媒体文件模块143.3.6 彩信接收模块143.4 多媒体存储设计153.5 J2ME在彩信收发系统中的应用153.5.1无线消息API(1.1&2.0)153.5.2 FileConnection 连接文件系统173.6 安装与使用(真机环境)184详细设计与实现204.1彩信发送模块关键代码(MMSend.java)204.2彩信接收模块关键代码224.3 浏览多媒体关键代码255技术性能问题研究285.1安全模型与PUSH285.2 MMAPI特性285.3 J2ME程序自动升级286 系统的不足与改进的方向286.1系统中的不足296.2 改进的方向297 J2ME技术的未来发展展望297.1 J2ME未来应用297.2 J2ME开发信息终端技术308 总结31致 谢32摘要基于J2ME彩信收发系统指导教师:(河北秦皇岛,河北科技师范学院信息技术系网络工程0701班,066000)摘要随着中国经济的发展,中国的进入信息时代,伴随中国移动增值业务市场的发展,以及3G的正式商用,中国MMS市场进入了成熟阶段,用户可以像使用短消息一样收发更加个性化的多媒体消息。用户只要拥有带摄像头的彩信手机,就可以随时随地拍照,并把照片保存到手机,或者作为屏幕或屏保,或是通过GPRS发送出去,与亲人、朋友共同分享快乐动人一刻。 关键词: 信息时代,MMS ,GPRS,3G RECEIVE AND SEND MMS SYSTEM BASE ON J2MESupervisor: (Qinhuangdao, Hebei province, Dept. of Information Technology, Network 0702, 066000)AbstractAs Chinese economy grows well, China has stepped in to the Information age. Along with the development of the China mobile market of value added operation and the formal commercial usage of 3G, the market of China MMS has welcomed its maturity and the subscribers can receive of send multimedia message which has more individuation in the way they deal with text message. As long as they own a cell phone which has a vidicon and supports multimedia message, they can snap at any time and store the pictures, save as wall papers or screen protection, or send out via GPRS, sharing the exciting moment with friends and family.Key words: Information age, MMS ,GPRS,3G河北科技师范学院08届毕业论文(设计)1 引言1.1系统开发背景及现状MMS(Multimedia Messaging Service),即多媒体信息服务,通常又称为彩信。多媒体消息业务是在短消息业务基础上发展起来的一种新型消息业务。MMS是第3代移动通信标准化组织3GPP制定的全球信息传送标准,是一项全新的数据业务,用户可以像使用短消息一样收发更加个性化的多媒体消息。彩信最大的特色就是支持多媒体功能,能够传递功能全面的内容和信息,这些信息包括文字、图像、声音、数据等各种多媒体格式的信息。它将不同的媒体,如文本、图片、照片、音频、视频等组合成一个多媒体消息进行发送。MMS信息容量也大大增长,可以达到100kB左右。用户在终端上发送MMS 操作也非常方便。自2002年开始,彩信一直处于高速发展中该业务推出后一年,市场规模就达到2亿。根据iResearch统计,2004年MMS的市场规模为8.1亿元,较2003年增长300%。这一年促使彩信市场快速增长的主要原因是中国移动与彩信SP对彩信业务进行了大力推广。2004年信息产业部和中国移动、中国联通都加强了MMS业务的管制,规范了市场,限制了SP的违规行为,但也对MMS市场的发展有一定的影响,2005年国内MMS市场规模略有下降,为7.2亿元,比2004年下降11%。但随着MMS市场规范化程度的不断提高用户对MMS 消费需求将逐级增长,国内MMS 市场将进入一个稳定的高速增长阶段,规模将成倍增长,2008年有望达到75亿元。2007年iResearch艾瑞市场咨询通过对用户研究发现,彩信业务是最受用户青睐的增值业务之一, 2006年1112月有57.2%的人使用彩信,彩信业务是用户使用最多的手机增值服务。近年来移动增值业务发展非常迅猛,从产业发展阶段来看,中国移动增值市场已发展到一个相对成熟的阶段,移动增值业务对整体通信产业收入贡献度将越来越高,中国移动的新业务也在以短信为主导得到不断开发和提升。iResearch艾瑞咨询分析认为,MMS等2.5G业务将从2007年开始进入高速发展阶段,尤其是随着3G时代的来临,彩信业务对通信产业收入的贡献率将会越来越高。1.2 系统开发的目的随着手机由简单的话音工具转变成具有丰富娱乐功能的个性化消费品,随着彩信用户的不断增加和用户服务要求的不断提高,随着移动网络技术和Internet技术的不断发展,更加便捷、更加完善、更加具有吸引力的MMS彩信应用将不断涌现,使人们的生活更有色彩。1.3系统开发关键技术1.3.1 J2ME技术简介随着移动通信的突飞猛进,移动开发这个新鲜的字眼慢慢成为开发者关注的热点。在网上进行的最近一份调查显示,有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪。J2ME(Java 2 Micro Edition)是嵌入式/移动应用平台的王者,Linux和WinCE分列二、三位。Nokia等厂商力推的Symbian平台目前开发者占有率尚未达到满意水平,考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机),Symbian、WinCE系列在移动平台上会是竞争的主要两方。如果厂商能在标准实现上做得更加规范,则J2ME的跨平台特性会发挥得更加淋漓尽致,继续保有王者地位。J2ME是SUN公司针对嵌入式、消费类电子产品推出的开发平台,与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的Java Specification Request(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保兼容性。现在手机厂商还存在两个普遍的问题:一个是缺乏开放的编程平台,另一个是只能通过WAP方式访问Internet。通过应用J2ME技术开发手机的应用软件,我们就可以解决这两个问题:首先,Java语言是跨平台运行的,软件开发商可以很容易地开发应用程序,也可以方便地安装到手机中;其次,J2ME提供了HTTP、TCP等高级Internet协议,Java程序可以自由的访问Internet。1.3.2 MIDlet生命周期在MIDP中定义了一种新的应用程序模型MIDlet,它是被Application Management Software(AMS)管理的。AMS负责MIDlet的安装、下载、运行和删除等操作。在被AMS管理的同时,MIDlet可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()和notifyPaused()实现的.MIDlet有三个状态,分别是pause、active和destroyed。在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调用的时候MIDlet进入active状态,也就是所说的运行状态。在active状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。下图说明了MIDlet状态改变情况:MIDlet状态图1.3.3 FileConnection的简介Java ME一直没有开放对移动电话文件系统的访问是有历史原因的。当初的移动电话并不像现在市场上电话一样具有文件系统,因此制定MIDP规范是还无法定义这样的接口。随着移动电话的处理器、内存和存储卡的发展,很多手机已经具备了文件系统,尤其是出现的智能手机的概念,智能手机的出现彻底模糊了手机和PDA的界限。向开发者提供访问手机文件系统接口的需求越来越强烈,这样JSR75进入了Java ME。FileConnection API (FCAPI)定义在javax.microedition.io.file包内,它所需要的最小运行环境是CLDC1.0因此FCAPI可以无缝移植到CLDC1.1和CDC平台上。在使用FileConnection API之前应该查询系统属性microedition.io.file。FileConnection.version来判断目标设备是否支持FCAPI。如果目标设备不支持FCAPI,那么System.getProperty(microedition.io.file.FileConnection.version)将返回null,否则会返回FCAPI的版本号。1.3.4 J2ME技术的优势移植性强 使用J2ME技术开发的程序,可以经过简单的修改以后,在不能厂商的手机上运行,这个是J2ME技术最大的优势。 开发速度快 由于Java语言自身的特点,和系统的关联不大,所以开发速度很快。程序的开发周期比较短。 技术入门快 由于JAVA语言相当的普及,而对于有一定JAVA语言基础的人来说,学习J2ME技术的门槛很低,所以J2ME技术的普及速度很快。2 需求分析近年来,随着手机技术的发展和日趋激烈的市场竞争,越来越多的终端厂商开始重视彩信这一极具潜力的市场,纷纷开发了多种款式、多种功能、多种档次的支持彩信的手机和摄像功能的手机,彩信手机的更新换代速度越来越快。现在,支持彩信服务已经逐渐成为大多数手机的一种最基本的功能。原来价格高高在上的彩信手机也逐渐平民化和普及化。目前,市场上带有摄像头的彩信手机价格多在10003000元之间,一些便宜的摄像手机甚至跌破了1000元大关。彩信手机的价格逐渐进入了普通消费者尤其是数据业务的主要用户低收入的上班族和学生可以接受的范围,越来越多的消费者加入了“彩信一族”,拥有了彩信手机和带摄像功能的手机,开始接触和使用彩信业务。从这个角度来说,彩信手机的普及无疑为彩信的发展打下了良好的基础,成为彩信迅速发展的强大助推器。根据大众用户的在生活中的需求,在生活中,只要大众的手机有拍照和录音的功能,就能随时分享自己的成果。同时,这个系统正是为大众做出最佳的选择,通过信息的方式将自己的美好时刻与亲人和朋友分享。2.1 系统需求彩信是全新的情感交流方式, 彩信沟通比电话沟通更方便、快捷、有效。短信交流,开创了一个新的交流方式,短信沟通方式有以下特征:及时性。彩信实现了用户与信息的同步,其传播效率具有传统媒体无法比拟的优势。私密性。彩信沟通,是一对一的沟通渠道,不用张口说话,无论是在会议上,还是在公交车里,都可以进行,很容易做到不为众人所注目。选择性。手机彩信打破了地域、时间,以及具备电脑终端设备等条件的限制,可随时随地收发文字、图像等信息。本系统应满足大众功能有以下几个:(1)对文字的收发;(2)对图片的收发;(3)对声音文件的收发; (4) 查看文字信息; (5) 查看收到的图片; (6) 播放声音文件; (7) 播放视频文件;2.2 功能需求根据系统的需求分析,功能需求:该系统具有传送文字信息,并将通过FileConnection将发送的信息,保存在手机相应的文件夹里,生成txt文件;当想查看过去收到得信息时,可以随时浏览;同时可以传送图片信息,随时和自己的朋友分享自己的精彩时刻,同时可以查看自己的图片;开发的系统还可以,发送声音文件,还可以播放这些文件;播放视频文件也是系统的一个特点,享受视频带给大家的快乐。图1 功能表2.3性能需求本系统的运行环境要求:2.3.1 硬件环境本系统模拟运行,模拟手机的运行状况,属于单击版软件:(1)处理器:Intel Pentium 4 3.06GX或更高(2)内存:512MB或更高(3)硬盘空间:40GB(4)显卡:SVGA显示适配器2.3.2 软件环境(1)操作系统:Windows 2000/XP(2)开发软件:Netbeans5(3)模拟器:WTK2.53系统总体设计3.1系统的开发原理系统的开发中,涉及到传送时,所用的协议,而该系统中用的协议,是我们平时用的最多的协议,那就是Http协议,以及当有信息发送的时候,又是通过什么来提醒有信息的呢,那就是通过push注册机制,来实现的。3.1.1 WAP无线应用协议简介随着科学技术的发展,计算机已经深入到人们的日常生活当中。现在人们已经不再是只局限在和计算机交流,而是通过网络和更多的人进行信息交流。在网络技术发展的同时,无线通信技术也在欧洲迅速地发展,并波及到整个世界。人们现在可以在汽车上,在火车上或者在郊外通过移动电话和其他人取得联系。随着移动电话的价格和入网费用的降低,越来越多的中国百姓购买和使用移动电话。现在世界上有超过3亿的移动电话用户,同时也有数百万的因特网(Internet)用户。专家预测,近几年内,这两项技术的用户数目将持续和快速增加。可以说网络技术和无线技术将在下一个世纪极大地改变我们的生活方式。 每天人们使用Internet收发电子邮件,在Internet上阅读新闻,通过Internet发布各种信息,通过Internet和相隔千里,甚至是根本不熟悉的人进行交流。Internet正在改变世界的运转方式,它将使得全球的人们能够方便、快捷、低成本地去访问大量的信息。正是因为Internet的爆炸性发展使得信息业务的发展和开展成为可能。但是Internet通常只能使用个人电脑通过固有电缆连接。而对于没有个人电脑和经常流动的人们来说,就没有办法接入到Internet。这是十分不方便的,于是就有了随时随地访问Internet的愿望。虽然可以借助便携式电脑和无线调制解调器来解决问题,但这些解决方案有许多不够理想的方面,比如装置尺寸、重量、电池寿命和使用成本等等。 另外即使移动通信可以随时随地与外界保持联系,但是目前用户通常使用语音业务,而移动数据业务并没有得到广泛的应用。常用的短消息业务(SMS)仅允许发送大约160字节的简单信息。如此窄的带宽是不利于Internet接入的。为了将移动设备和Internet连接起来实现无线数据业务,人们提出了许多解决方案,其中之一就是无线应用协议(WAP)。它以其自身的特点很快成为人们瞩目的焦点。1997年6月,移动通信界的四大公司爱立信、摩托罗拉、诺基亚和无线星球组成了无线应用协议(WAP,Wireless Application Protocol)论坛,目地是建立一套适合不同网络类型的全球协议规范。无线应用协议(WAP)于1998年初公布,这是一项网络通信协议,是全球性的开放标准。它的出现使移动Internet 有了一个通行的标准,标志着移动Internet标准的成熟。WAP的目标就是将Internet的丰富信息及先进的业务引入到移动电话等无线终端之中。它根据无线网络的特点如低带宽、高延迟进行优化设计,把Internet的一系列协议规范引入到无线网络中。WAP只要求移动电话和WAP代理服务器的支持,而不要求现有的移动通信网络协议做任何的改动。因而适用于CDMA、GSM、IMT-2000等不同的移动通信系统。此外WAP尽可能少地利用手持设备的ROM、RAM和CPU等资源,它通过加强网络的功能来弥补手持设备的缺陷。而基于Internet标准的微浏览器技术可以使手持设备根据自己不同的显示、输入方式来决定显示信息的方式。这样,各种终端,从最简单的手持机到功能丰富的PDA或笔记本电脑都能接到相同的信息和资源。3.1.2 push注册机制简介MIDP2.0引入了Push注册机制,作为一种允许应用被自动启动的方法,由预先设置的警告或者经inbound连接收到的消息。通过这种方法,MIDlet可以用来设置处理规则事件,如定时从服务器上同步数据,或者非规则事件如一个突来的消息。Push注册机制由javax.microedtion.io.PushRegistry类管理,它还是应用程序管理系统它处理所有事件的一部分。警告事件通过指定MIDlet名称和启动时间进行注册。对于任何MIDlet只能注册一个警告事件,因此注册一个新的警告会重写注册机制中以前的任何警告。这种情况可以被检测到,因为若原来存在警告,注册方法会返回被重写的警告的时间。无线消息API(WirelessMessaging API)可以和Push注册机制联合使用,通过消息监听器来处理到来的消息,消息监听器实现在AMS启动MIDlet后处理消息有效载荷的逻辑。在这种情况下,MIDlet会注册一个特定的端口号和消息类型作为启动MIDlet的触发器,AMS监视端口的行为,以寻找在该端口上的正确网络请求。另外,注册的连接可能被过滤,允许MIDlet指定只有来自特定服务器的连接作为启动MIDlet的触发器。3.1.3 Media 音频子系统简介在当前世面上存在着大量的不同媒体格式,并且还有许多新的媒体格式即将被建立。为了存储和传输这些不同的媒体格式,存在着了许多不同格式的存储设备和传输协议,例如大家常使用的媒体存储设备(如CD、VCD以及DVD),有线传输协议(如UDP、HTTP),无线传输协议(如WAP)。 为了使移动装置能够访问这些不同格式的媒体数据,必须为其设计一个规范化的、强大的和可扩充的应用接口。J2ME中就提供了一套为规范的播放和录制音频或视频接口,即Mobile Media API (MMAPI)。一般情况下,可以将媒体处理过程分解为两个过程:(1)处理媒体数据的传输协议的过程。 (2)处理媒体数据内容的过程。(1)处理媒体数据的传输协议的过程 处理传输协议的过程是指从数据源(如一个文件、一个捕获装置或一个流服务)上读取媒体数据内容后,将其传送到媒体数据内容处理的过程。 MMAPI使用Data Source来处理媒体数据的传输协议的过程。一个Data Source知道如何从它的原始位置读取媒体数据并传送给媒体数据处理(Player)。媒体数据可以被保存在不同的位置,从远程服务器到资源文件或者RMS数据库。媒体数据可以从原始位置通过HTTP,像RTP一样的流式传输协议,或者其他机制传输到媒体数据处理(Player)。图1展示了Data Source的工作过程。图1:Data Source工作过程(2)处理媒体数据内容的过程 处理媒体数据内容的过程通常需要对媒体数据进行解释和解码,并且还需要认别该媒体的输出设置的类型,如是音频设置或者视频设置。举个例子,当DataSource从某媒体数据源上获取一MP3媒体数据,并将其传送给处理媒体数据内容过程,此过程首先对这个MP3媒体数据进行解析和解码,同时检测该MP3媒体为音频数据,打开装置的音频设备,将解析和解码后的媒体数据直接传送到装置的音频设备缓冲中,由该音频设备根据缓冲区中的数据内容产生音频信号。 MMAPI使用Player来处理媒体数据内容。一个Player是javax.microedition.media.Player接口的一个实现实例,它从Data Source中读取媒体数据、解析和解码数据以及识别媒体输出设备和传送媒体数据到输出设备等。Player提供了一套方法去控制媒体的重放和同步。 MMAPI还提供了一个或多个Controls来调整player的行为,可以在player从媒体转换数据的时候从一个player实例取得并且使用Controls。我们可以通过Player中提供的一些特殊的Controls访问一些特殊的媒体类型。Controls由javax.microedition.media.Control接口实现。 (3)Manager J2ME为了实现对DataSource和Player有效管理,使用了工厂机制,由Manager来负责创建Player和DataSource。这样的机制在JAVA中到处可见,如JDBC中的DriverManager,这里我就不对这种机制进行介绍了。Manager不仅可以从DataSource中创建Player,而且还可以从本地或InputStream中创建Player。图二展示了MMAPI整体结构图。图2 MMAPI整体结构图(4)Player的应用我们根据应用实际的情况创建Player对象。有了一个Player对象以后,接下来要通过这个Player对象提供的方法去控制媒体流。下面我们列出常用的方法:Player.start():重放媒体流Player.stop():停止媒体流Player.setMediaTime(long now):设置媒体时间Player.close():关闭媒体流并释放资源Player.getState():获取Player的当前状态每个Player对象中都存在着一个状态变量,用于表示该Player对象的生命周期。当Player第一次被建立时处于UNREALIZED状态;当为该Player设置了媒体数据的位置后,它处于REALIZED状态(如Player正在从一个服务器的HTTP连接下载并解释数据的时或Player在Http请求已经发送到服务器,收到HTTP响应后,而且DataSource准备好接收媒体数据的时);当该Player已经读到足够的数据而开始解释和运算时,处于PREFETCHED状态;当数据在运算完毕后,该Player的状态变成了STARTED。我们在使用Player对象的方法对媒体流进行控制时,应注意它们可能影响到Player状态的改变,可以使用getState函数获取当前Player的状态。图三展示了Player对象的状态转换图。图3 状态转换图3.2 系统的功能设计3.2.1总体框架设计Sun公司在1999年6月推出了J2ME(Java 2 Micro Edition,Java 2袖珍版)。J2ME是专门为那些使用有限电源、有限网络连接以及有限图形用户界面能力的设备开发的,满足了消费电子和嵌入式设备开发的需要。而7年后的今天,消费电子和嵌入式设备发展迅速。硬件设备速度越来越快,存储容量也越来越大,这也就自然带动了软件的发展。MIDP 2,O和CLDC l.1也相继问世,各种各样的JSR也层出不穷。硬件平台和软件平台的飞速发展自然带动了人们需求的增长,也就使得现在的应用程序越来越复杂。以手机游戏为例:以前的手机游戏,一般代码必须限 制在64 KB以内;而现在,大部分手机的这种限制已经取消。上百KB的游戏已很常见,甚至有的J2ME游戏已经超过2 MB。通常来说,J2ME程序都是比较小的,多数在100 KB以下。而且其中大部分是图片和声音,代码只占其中很少一部分。在J2ME程序比较小时,为了提高程序的执行效率,通常的做法是其用一个类完成整个应用 程序,在回调函数commandAction()中完成所有界面切换的工作。随着嵌入式硬件的发展,J2ME软件的复杂度也越来越大,新的设计模式诞生了MVC模式,同样本系统中的开发,用的是MVC模式。MVC模式基于用户输入,并将域的建模、显示和操作分为三个独立的类。模型:模型用于管理应用程序的行为和数据,并响应来自视图的请求,还会响应更改状态的指令(通常来自控制器)。模型可以使一个简单的Hashtable,也可以是一个复杂的Java对象。视图:视图用于管理信息的显示。对于MIDP应用程序来时,视图就是一系列的Displayable界面,用于向用户显示数据,并将用户命令传递给控制器。控制器:控制器用于解释用户输入,并通知模型和视图进行相应的更改。由于MIDP应用程序在运行期间有且仅有一个MIDlet实例,因此MIDlet类非常适合做控制器。淡然也有很多开发者喜欢创建一个控制器类,这显得结构更加清楚但却增加了最终发布的MIDlet套件的大小。图4描述了这三个对象的结构关系:图4 MVC模式类的结构关系3.2.2流程设计基于J2ME彩信收发系统流程图3.3 模块设计彩信收发系统的特色就是支持多媒体功能,能够传递功能全面的内容和信息,这些信息包括文字、图像、声音、数据等各种多媒体格式的信息。它将不同的媒体,如文本、图片、照片、音频、视频等组合成一个多媒体消息进行发送。3.3.1 启动模块启动模块启动后是一个手机模拟器,然后,可以选择进入彩信发送模块和彩信接收模块。3.3.2 发送模块进入发送模块,你可以有多种操作选择,通过Command按钮的选择,可以填写主题,发送的地址,然后增加附件Command按钮,添加附件,然后发送彩信;还可以选择查看信息Command按钮,阅读以前接收到得信息;还能通过选择查看多媒体Command按钮播放多媒体文件,比如:音乐,视频,图片,如图:3.3.3 增加附件模块通过增加附件Command按钮,进入附件的选择,根据用户的需求,选择要发送的彩信的类型,分别是文字,图片,声音;但对这些类型有一定得限制,图片和声音的文件大小不要超过30kb;如果超过30kb程序会发生异常,如图:3.3.4 查看短信模块通过查看信息Command按钮,进入短信浏览列表中,短信的名称是以短信内容的前十个字符作为短信的名称;然后,选中相应的短信,就可以阅读,如图:3.3.5 查看多媒体文件模块通过查看多媒体Command按钮,进入多媒体浏览列表中,这时会打开,模拟器中的file:/root1/recevie/这个目录下的文件,并成列表的形式,展现出来;当选中文件时,会在一个Form中播放,如图:多媒体列表图Gif图片播放图3.3.6 彩信接收模块改模块就是接收从另一个模拟器发过来的彩信,当有彩信发送过来的时候,自动接收改彩信,并将接收的彩信信息显示在当前的模拟器中;如果是图片或声音信息会通过FileConnection对象,将发送过来的图片或音乐保存在模拟器的root目录里的receive文件夹,如果该文件夹不存在,通过FileConnection对象建立receive文件夹,并将图片或声音文件保存,如图:接收信息图3.4 多媒体存储设计当接收彩信时,利用单独的线程控制,这样不会使系统堵塞,当有彩信时,首先读取消息头字段数据,然后读取消息主体内容。如果主体包括多个部分,应该逐一解析这些部分,在解析过程中,根据消息部分的MIME类型解码,如果属于多媒体信息,比如:图片,声音文件,就利用Connector.open()创建FileConnection类,创建文件;这个文件会保存在WTK2.5的安装目录下,DefaultColorPhone模拟器的相应文件夹中,目录为WTK25appdbDefaultColorPhonefilesystemroot1,如图:3.5 J2ME在彩信收发系统中的应用3.5.1无线消息API(1.1&2.0)移动电话最常见的一个特性就是消息传递。文本消息或短消息(SMS)自引入之初,已经变得越来越流行。当然,多媒体消息(MMS)又为其增加了图片、声音和视频等多媒体内容。在 MMS 刚出现时,有些专家预言它会取代 SMS,如果它的价格不是这么高的话,这个预言确实有可能会成为现实。即便如此,这种能在手机之间传递多媒体内容的功能还是渐受青睐。最近手机电子邮件的 成功,意味着未来手机消息传递的主要形式可能是电子邮件,但是要到那一步还有很长的一段路要走。(1)无线消息JSR-205 中定义的无线消息 API(WMA)2.0 是用于无线消息的一组可选 API。WMA 的连接基于通用连接框架,该框架是在基于 CLDC 的 Java ME 架构中进行通信的基础。WMA 2.0 向后兼容 WMA 1.1,添加了对发送和接收多媒体消息的支持。换句话说,无线消息 API 提供了无线通信的高级抽象。它将传输层完全隐藏,因而所要做的工作只是创建消息、发送消息和接收消息。 WMA 支持文本消息、小区广播和多媒体消息。文本消息很简单,大多数人都知道它是什么。SMS 消息极为流行,而且已经成为日常生活的一部分。WMA 支持发送和接收文本消息。发送非常简单:只需定义目标地址和文本,文本被称为净荷(payload)。接收稍微复杂些,因为需要应用程序能够侦听进入的消息。在下面的示例中将看到如何读取进入的消息。这里介绍下jsr-102规范是针对WMA1.1的。 比较详细的资料可以google下。jsr205规范完全向下兼容,也就是说。你在jsr-102写的程序可以不用任何修改就可以运行在jsr-205规范下。(2)消息内容二进制消息顾名思义就是带有二进制内容的消息。内容可以是要传递给应用程序或者从应用程序传递给其他客户机或服务器的任何内容。多部分消息可以包含多块媒体,例如文本、音频和视频。小区广播可能是最不为人所知的消息类型。小区广播服务是一种数据服务,在这种服务中,消息由基站广播,由侦听这个基站的每个移动站接收。这个服务是单向的,这意味着 WMA 只能用来接收这类消息。(3)发送和接收发送文本消息很简单。步骤如下:设置手机号码(地址),用 Connector 接口创建 MessageConnection,创建新消息,并把它的类型转换成 TextMessage,设置净荷,通过调用 send() 方法并向方法传递 Message 实例,发送消息。(4)基于MMS的多媒体消息WMA2.0定义在JSR 205中,对WMA 1.1进行了改进,增加了对多部分消息的支持。WMA 2.0中定义的组建比WMA1.1新增了MessagePart、MultipartMessage和SizeExceedEception.消息的结构MultipartMessage同样继承自Message接口,代表有多个部分组成的消息。MultipartMessage最典型的代表就是基于MMS的多媒体消息。MessagePart代表MultipartMessage的组成部分,一个MultipartMessage可以包含1个或者多个MessagePart消息一般都有消息头(Header)和消息主体(Body)组成,MultipartMessage代表的小同样如此,特殊指出就在于他的消息主体可能有多个部分组成,比如图片和文本等。MultipartMessage的消息头标记整个消息的信息,注意不要和MessagePart的头信息混淆,后者是标记消息体的。由于安全愿意,MIDP应用程序可能无法访问所有的MultipartMessagebiaoji,开放的这些已经可以解决程序中的多数问题了。下面这些头字段可以通过MultipartMessage的getHeader()和setHeader()方法访问。X-Mms-Dslivery-Time:消息的发送时间;X-Mms-Priority:消息的优先级;X-Mms-Subject:消息的主题;X-Mms-Form:消息的来源,也就是发送地址.这个字段是信息发送是自动设置的;X-Mms-To:消息接收者的地址;X-Mms-CC:消息的抄送地址;X-Mms-BCC:消息的抄送地址,但是这些地址其他的接收者不知道。这个字段是可选的,底层的WMA 2.0实现可以不提供此项功能;MessagePart是消息体的组成部分,可以通过MessagePart提供的方法设置消息部分的头字段,例如,设置MIME类型以标记消息部分是文本还是图片,设置ContentID来标记消息部分,等等。在构造MessagePart内容时,可以通过两种方式,第一种是提供内容的字节数组;第二种则是与内容简历留连接,把InputStream的实例作为MessagePart构造器的参数。一般来说如果内容大于10KB时,应该使用流连接方式。消息的地址通常多部分消息地址包含如下几种类型: 电话号码,Ipv4或者Ipv6地址; 地址信箱地址; 服务短码(MMS 1.0不支持)在MMS消息中出现了一个新概念Application-ID,Application-ID和SMS消息地址中的端口非常类似,当消息发送时,Application-ID会写入到消息头字段的Content-Type中。移动电话的MMS客户段在接收到多媒体消息是,会根据Application-ID把消息交给适当的应用程序处理。与短消息的地址类似,多媒体消息的地址也分为服务器端模式和客户端模式。当不指定接收地址,只指定Application-ID时,这是服务器端模式,能够发送和接收多媒体消息。例如,mms:/:com.j2medev.mmsapp.当同事指定了接收地址和Application-ID时,这是客户端模式,只能够发送多媒体消息。例如,mms:/1381000xxx:com.j2medev.mmsapp.3.5.2 FileConnection 连接文件系统Java ME一直没有开放对移动电话文件系统的访问是有历史原因的。当初的移动电话并不像现在市场上电话一样具有文件系统,因此制定MIDP规范是还无法定义这样的接口。随着移动电话的处理器、内存和存储卡的发展,很多手机已经具备了文件系统,尤其是出现的智能手机的概念,智能手机的出现彻底模糊了手机和PDA的界限。向开发者提供访问手机文件系统接口的需求越来越强烈,这样JSR75进入了Java ME。FileConnection API (FCAPI)定义在javax.microedition.io.file包内,它所需要的最小运行环境是CLDC1.0因此FCAPI可以无缝移植到CLDC1.1和CDC平台上。在使用FileConnection API之前应该查询系统属性microedition.io.file。FileConnection.version来判断目标设备是否支持FCAPI。如果目标设备不支持FCAPI,那么System.getProperty(microedition.io.file.FileConnection.version)将返回null,否则会返回FCAPI的版本号。3.6 安装与使用(真机环境)(1)J2ME总体架构J2ME是一种通过许多部件和规范的技术, 这众多的部件和规范帮助J2ME来满足这众多的消费产品的不同的需要。和所有的Java程序语言技术一样,在它的核心属于一种虚拟机。就像使用所有 Java技术一样,J2ME的核心也在一种虚拟机中。最初,用于J2ME应用程序虚拟机的被称作 Kilobyte virtual machine或简称 KVM。就像它名称的含义,KVM比较小,通常只有 128K或更少。这比起我们通常了解和使用的J2SE(Java 2标准版)Java虚拟机 ( JVM )的 32 MB来说就小得多了。 用于连接虚拟机的是一系列配置和简表,它们提供了用于特定J2ME环境的类应用程序接口,图一展示了J2ME的总体架构。 每个配置和简表处理一般或具体的消费产品,配置和简表规范是由多种多样的设备生产商和用户共同开发并建立的。配置是用于一组通用设备的最小的Java平台,常常归为一种横向的设备分组,相对来说,横向分组设备是那些共享相同的内存安排,通信带宽,能量需求以及用户能力的设备,一般认为配置能够提供这众多的设备的所有需求。(2)配置(Configuration)配置(Configuation)将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定虚拟机。虽然还可能在将来定义其他的配置,但当前 J2ME 存在两种配置:CLCD(Connected limited device configuration有限连接设置配置)CLCD是为具有较小存储容量的设备而设计的。根据规范中所说,运行 CLDC的设备应该有 512K或更少的内存空间、一个有限的电源供给 (通常是使用电池)、有限的或断断续续的网络连接性(9600 bps或更少)以及多样化的用户界面甚至没有用户界面。 通常说来,这个配置是为个人化的、移动的、有限连接信息设备而设计,比如手机、呼叫器、PDA和POS终端等。由于我们准备研究的对象是手机,它也是一种典型的CLCD设备,所以有必要对CLCD层进行简要介绍。CLCD为简表层提供接口服务,同时还可以直接为应用程序层提供服务。CLCD通过四个包为简表层和应用程序提供服务,它包括语言服务、输入输出服务、网络通讯服务和实用工具服务等。这些服务分别在以下四个包中实现:java.lang语言包:此包是J2SE中的同名包的子集,继承了J2SE语言包的大部分功能。但是,由于有限于设备的运行资源,CLCD不支持浮点型数据类型,也不提供文件的支持和错误处理的支持。java.io输入输出包:此包是J2SE中的同名包的子集,向上层提供基本的IO服务。java.util实用工具包:此包是J2SE中的同名包的子集,它提供定时器、日期等常用的实用工具类,但是它没有提供Java集合工具类。java.microedition网络通讯包:此包是CLCD中唯一不是J2SE子集的包。它是专门为小型有限资源设备设计的,为其提供类似J2SE的网络输入输出功能。在介绍Java手机网络通讯一节我们将重点说明此包提供的类的使用。从上面对CLCD提供的四个包的说明可以看出,其实CLCD是J2SE的一个子集,其大部分功能都是从J2SE中减化来的,同时,它还根据运行设备的特性提供了附加的功能。(3)简表(Profile)简表定义了应用程序所支持的设备类型。特别地,它向J2ME配置添加了特定于域的类来定义设备的某种作用。简表建立在配置的上层。至今,已经为 J2ME 定义了两种简表:KJava 和移动信息设备简表(MIDP),它们也被建立在CDLC上。这两种简表适用于小型设备。在手机J2ME中基本上都提供了MIDP简表,手机程序的设计基本上都是基于MIDP的,所以也常把J2ME手机程序设计称为MIDP程序设计。MIDP,全称Mobile Information Device Profile,可译为移动信息设备简表,是第一个实现的简表。它补
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中唱歌 凤阳花鼓教学设计及反思
- 精美礼品会包装(教案)-2024-2025学年劳动五年级北师大版
- 2025年大学《海关管理-海关法》考试参考题库及答案解析
- 2025年大学《广播电视学-广播电视新闻采写》考试备考试题及答案解析
- 2025年大学《汉学与中国学-中国古代史专题》考试备考题库及答案解析
- 2025年大学《海警后勤管理-海警后勤管理概论》考试备考试题及答案解析
- 第二单元《除数是一位数的除法》(教学设计)三年级数学下册同步备课系列(人教版)
- 2025年大学《医学检验技术-临床生物化学检验》考试模拟试题及答案解析
- 2025年大学《能源服务工程-能源服务工程概论》考试参考题库及答案解析
- 2025年大学《基础医学-细胞生物学》考试参考题库及答案解析
- 建筑施工企业安全生产事故隐患报告和举报奖励制度
- 真空测试工常识强化考核试卷含答案
- 康复科的简单介绍
- 无人机科普大讲堂
- 医院培训课件:《临床医师的临床思维》
- 老年人能力评估量表的使用
- 2026年中国化工工程承包行业市场深度调研研究报告
- 2025年西藏自治区中考英语试题【含答案解析】
- 学术英语(南开大学)知到智慧树网课答案
- 双方解除劳动合同转为合作关系协议8篇
- 2025至2030全球与中国结冷胶行业市场规模分析及竞争策略与发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论