• 976.50 KB
  • 47页

中国移动java终端技术规范v4.1

  • 47页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'QB-╳╳-╳╳╳-╳╳╳╳中国移动通信企业标准QB-╳╳-╳╳╳-╳╳╳╳中国移动Java终端技术规范ChinaMobileJavaTerminalSpecification版本号:4.1.0╳╳╳╳-╳╳-╳╳实施╳╳╳╳-╳╳-╳╳发布中国移动通信集团公司发布 QB-╳╳-╳╳╳-╳╳╳╳目  录前言III1.范围12.规范性引用文件13.术语、定义和缩略语24.概述34.1目的34.2业务简介34.3组成35.功能要求45.1国际规范要求与澄清45.1.1国际规范要求列表45.1.2通用要求55.1.3ConnectedLimitedDeviceConfigurationVersion1.1——JSR13965.1.4MobileInformationDeviceProfileVersion:2.1——JSR11865.1.5PDAAPI——JSR075115.1.6MobileMultimediaAPI——JSR135125.1.7Mobile3DGraphics1.0——JSR184135.1.8WirelessMessagingAPI1.1/2.0——JSR120/JSR205135.1.9JavaMESecurityandTrustService——JSR177135.1.10JavaMEScalable2DVectorGraphics1.0——JSR226145.1.11MobileMultimediaAPI(Advanced)——JSR234145.1.12LocationAPI1.0——JSR179155.1.13ContactlessCommunication——JSR257155.1.14OpenGLES——JSR239155.1.15BluetoothAPI——JSR82155.2中国移动扩展要求165.3AMS的功能要求165.3.1通用要求165.3.2下载配置要求175.3.3Java应用的管理195.3.4内存要求205.3.5安全性要求205.3.6用户体验要求215.3.7事件处理要求235.3.8网络接入要求245.3.9应用并发的要求256.性能要求266.1Benchmark要求266.2启动时间要求277.编制历史27附录APIM支持的字段(基础级)28附录BMMAPI的支持要求(基础级)31III QB-╳╳-╳╳╳-╳╳╳╳附录C安全域策略(基础级)34附录DFileConnection支持目录(基础级)36附录EJAD的扩展属性37附录F事件对java虚拟机(VM)和midlet(App)运行状态的影响38附录G中国移动特定API的规范39III QB-╳╳-╳╳╳-╳╳╳╳前言本标准规定了中国移动Java数据增值业务在终端部分的要求,是开展Java数据增值业务的依据之一。本标准包括的主要内容:lJava业务的简单介绍;lJava终端的功能要求;l国际规范的澄清与要求;l中国移动的扩展要求;lAMS的功能要求lJava终端的性能要求;l对Java终端按照支持功能进行分级。本标准的附录A、B、C、E、F为标准性附录,附录D、G为资料性附录。本标准由中移号文件印发。本标准由中国移动通信集团终端部提出,集团公司技术部归口。本标准起草单位:中国移动通信研究院本标准主要起草人:陈大庆于川常嘉岳张小栋侯睿III QB-╳╳-╳╳╳-╳╳╳╳1.范围本标准规定了支持中国移动Java业务的Java终端设备的功能和性能,供中国移动开展Java业务,终端厂商Java终端产品的研发、生产,SP进行Java应用开发使用;适用于GSM/GPRS网络以及TD-SCDMA网络环境。2.规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。表2-1规范性引用文件列表序号标准编号标准名称发布单位[1]《通用下载平台业务规范1.0.0》中国移动通信有限公司[2]《通用下载平台接口规范1.0.0》中国移动通信有限公司[3]JSR-139ConnectedLimitedDeviceConfiguration1.1JavaCommunityProcess[4]JSR-118MobileInformationDeviceProfileVersion:2.1JavaCommunityProcess[5]JSR-185JavaTechnologyfortheWirelessIndustryJavaCommunityProcess[6]JSR-120WirelessMessagingAPI1.1JavaCommunityProcess[7]JSR-205WirelessMessagingAPI2.0JavaCommunityProcess[8]JSR-135MobileMultimediaAPIJavaCommunityProcess[9]JSR-075PDAAPIJavaCommunityProcess[10]JSR-177JavaMESecurityandTrustServiceJavaCommunityProcess[11]JSR-184Mobile3DGraphics1.0JavaCommunityProcess[12]JSR-226JavaMEScalable2DVectorGraphics1.0JavaCommunityProcess[13]JSR-234MobileMultimediaAPI(Advanced)JavaCommunityProcess[14]JSR-179LocationAPI1.0JavaCommunityProcess43 QB-╳╳-╳╳╳-╳╳╳╳[15]JSR-257ContactlessCommunicationJavaCommunityProcess[16]JSR-239OpenGLESJavaCommunityProcess[17]JSR-082BluetoothAPIJavaCommunityProcess[18]《中国移动TD-SCDMA终端设备总体技术要求》中国移动有限公司3.术语、定义和缩略语下列术语、定义和缩略语适用于本标准:表2-1缩略语列表词语解释APIApplicationProgramInterfaceCLDCConnected,LimitedDeviceConfigurationGPRSGeneralPackageRadioServiceCSDCircuitSwitchDataHTTPHyperTextTransferProtocolJ2METMJAVA2MicroEditionJADJAVAApplicationDescriptionJARJAVAArchiveJCPJavaCommunityProcessJSRJavaSpecificationRequestsMIDIMusicalInstrumentDigitalInterfaceMIDPMobileInformationDeviceProfileOTAOverTheAirTCKTechnologyCompatibilityKitWAPWirelessApplicationProtocolJTWIJavaTechnologyfortheWirelessIndustry在本标准中使用了“必须”、“按条件必须”、“推荐”、和“可选”等词汇来描述对移动终端产品要求的强调程度。“必须”项是指终端产品所必须提供的功能或性能要求;“按条件必须”项是指终端产品在具有某种硬件能力时必须提供的功能或性能要求;“推荐”项是指在标准中未作硬性要求,但建议终端产品提供的功能或性能要求;“可选”项指在目前看来是中国移动需求的发展方向,或终端产品在目前阶段可不提供的功能或性能要求。目前阶段:从本版本发布之日截至到下一个版本发布日期。标准中除了明确指明为“推荐”、“可选”外,均为必须要求。43 QB-╳╳-╳╳╳-╳╳╳╳4.概述4.1目的本标准的目的是定义一个高质量的、统一的、可以快速推进中国移动自有业务发展的Java应用终端运行平台,是终端厂商提供Java终端的标准。本标准按照终端能力强弱,分别以JavaCommunityProcess(JCP)组织的JavaTechnologyfortheWirelessIndustry和MobileServiceArchitecture1.0SUBSET为基础,同时包括以下几方面的工作:²明确Java终端的对于国际规范要求功能的支持与澄清;²明确Java终端AMS功能的要求;²明确Java终端的安全性要求;²对于中国移动扩展功能的要求,为应用开发提供更加丰富的功能;²对国际规范中的可选功能及陈述模糊的地方进行明确要求,从而避免由于此类原因造成的终端应用开发接口的不统一;²中国移动对于Java终端性能的要求。4.2业务简介中国移动百宝箱平台和通用下载平台以及MobileMarket平台上提供了可以下载到终端上的Java应用,这些Java应用由中国移动或者是第三方开发商提供,需要终端符合统一的技术标准。此外,中国移动的新业务需要为用户提供基于Java技术的客户端,这些Java应用也需要符合统一标准的终端支撑。4.3组成本标准中立足于已有国际规范,结合中国移动业务需求和扩展,包括以下内容:已有JSR支持要求及澄清、中国移动扩展功能要求、AMS的功能要求、性能要求。国际规范以JCP组织提供的各个JSR文档为主,包括JSR-139(CLDC1.1)、JSR-118(MIDP2.0)、JSR-120(WMA1.1)、JSR-205(WMA2.0)、JSR-135(MMA)、JSR-075(PDA)、JSR-177(SecurityandTrustService)、JSR-184(3DGraphics)、JSR-226(SVG)、JSR-23443 QB-╳╳-╳╳╳-╳╳╳╳(advancedMMA)、JSR-179(location)、JSR-257(Contactlesscommunication)、JSR-082(Bluetooth)、JSR-239(OPENGL)等。本文在借鉴国际规范的基础上,对国际规范中的某些内容进行了进一步的明确要求和澄清,并对提出了分级要求。同时,中国移动也将根据自身业务特点提出扩展要求。本文在后面的内容中,描述了中国移动Java业务对Java终端的所有需求(简称“Java需求”)。每一条需求通过编号的方式明确提出。根据终端的功能和性能,Java需求分为三个等级,即基础级、第一级、第二级。其中基础级以JSR185(JavaTechnologyfortheWirelessIndustry)为基础,对应于符合中国移动对于Java终端的基础能力要求;第一级、第二级以JSR248MSAsubset为基础,第一级对应于符合中国移动对于Java终端的标准能力要求;第二级能力要求较高,适合具有较高性能的Java终端。Java终端根据所满足的Java需求,对应为三个级别,即基础级、一级、二级。其中基础级终端满足基础级中的所有“必须”需求,一级终端满足第一级和基础级中的所有“必须”需求,二级终端满足基础级、第一级和第二级中的所有“必须”需求,在“必须”需求之外本标准还根据终端的实际情况给出了“按条件必须”需求和“推荐”需求。如果终端的实现没有满足某级中的全部“必须”需求,则被视为未能符合该级。如果终端的实现没有满足基础级中的全部“必须”需求,则被视为未能符合本标准要求。实际开展业务时,可根据业务需求对终端须符合的等级进行特殊要求,如既可以要求必须符合第一等级,也可要求终端在满足第一级需求后,对“按条件必须”对于第一级以外要求进行支持。5.功能要求本章节包含了Java终端所应遵循的功能性要求5.1国际规范要求与澄清5.1.1国际规范要求列表表5-1国际规范要求列表JSR编号JSR名称要求类型终端分级JSR-139ConnectedLimitedDeviceConfiguration1.1必须基础级JSR-118MobileInformationDeviceProfileVersion:必须基础级43 QB-╳╳-╳╳╳-╳╳╳╳2.1JSR-120WirelessMessagingAPI1.1必须基础级JSR-205WirelessMessagingAPI2.0必须1级JSR-135MobileMultimediaAPI必须基础级JSR-075PDAAPI必须基础级JSR-177JavaMESecurityandTrustService必须1级JSR-184Mobile3DGraphics1.0必须1级JSR-226JavaMEScalable2DVectorGraphics1.0必须2级JSR-234MobileMultimediaAPI(Advanced)推荐2级JSR-179LocationAPI1.0按条件必须基础级JSR-257ContactlessCommunication按条件必须基础级JSR-239OpenGLES推荐2级JSR-082BluetoothAPI按条件必须1级5.1.2通用要求[需求编号]:TS-JAVA-JSR-GEN-000001[分级]:1级[需求描述]:考虑到硬件的能力,终端的Java实现“必须”全部或部分支持MSA-subset。[需求澄清]:如本标准为特别作出澄清,则终端的Java实现应该在其所支持JSR的需求上符合在MSASpec中的Clarification。“部分支持”指第一级终端可以不支持JSR-226。[需求编号]:TS-JAVA-JSR-GEN-000002[分级]:基础级[需求描述]:Java终端实现“必须”支持GB2312编码。[需求澄清]:终端必须支持Java应用程序对GB2312编码的输入和显示。[需求编号]:TS-JAVA-JSR-GEN-000003[分级]:1级[需求描述]:加速要求[需求澄清]:“推荐”Java实现采用通用的软件加速技术(如JIT、AOT)或者硬件加速技术(如ARMJazelle)来改善JVM整体性能。[需求编号]:TS-JAVA-JSR-GEN-000004[分级]:基础级[需求描述]:考虑到硬件的能力,终端的Java实现“必须”支持JTWI。[需求澄清]:如本标准未特别作出澄清,则终端的Java实现应该在其所支持JSR的需求上符合JTWI中的Clarification。43 QB-╳╳-╳╳╳-╳╳╳╳5.1.3ConnectedLimitedDeviceConfigurationVersion1.1——JSR139[需求编号]:TS-JAVA-JSR-CLDC-000005[分级]:基础级[需求描述]:Java终端“必须”支持通过java.io.DataInputStream.available()实现无阻塞读取方式。[需求澄清]:当遇到网络问题时,Java.io.DataInputStream.available()的实现采用可靠的非阻塞读取方式,可以为中国移动增值业务客户端提供更为有效的恢复能力。5.1.4MobileInformationDeviceProfileVersion:2.1——JSR118[需求编号]:TS-JAVA-JSR-MIDP-000006[分级]:基础级[需求描述]:终端设备“必须”支持JSR-118[需求澄清]:应遵循JSR-118最新2.1版本的要求。[需求编号]:TS-JAVA-JSR-MIDP-000007[分级]:基础级[需求描述]:终端“必须”支持通过MIDP2.1中CommConnection接口可以访问终端上所有可用的串口。[需求澄清]:如果终端上不存在可用串口,则本条需求可以不实现。[需求编号]:TS-JAVA-JSR-MIDP-000009[分级]:基础级[需求描述]:终端“必须”支持HTTPS。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-0000010[分级]:基础级[需求描述]:终端对于“非完整缓冲”的音频在线播放的要求。[需求澄清]:如果终端支持音频在线播放,则终端“必须”支持“非完整缓冲”的音频可以用流的方式通过HTTP1.1数据块输出进行播放。当采用HTTP方式进行播放时,“推荐”终端对流媒体播放时的缓冲区的大小设置为8KB。需求是为了保证音频以流形式在应用层面进行播放时,避免由于缓冲过大所造成的延时。“非完整缓冲”指的是音频在线播放前,无需作全内容下载缓冲。[需求编号]:TS-JAVA-JSR-MIDP-000011[分级]:基础级[需求描述]:终端“必须”支持SocketStream通信。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-000012[分级]:1级43 QB-╳╳-╳╳╳-╳╳╳╳[需求描述]:终端“必须”支持安全的SocketStream通信。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-000013[分级]:1级[需求描述]:终端“必须”支持outgoing的数据报(datagram)通信。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-000014[分级]:基础级[需求描述]:终端“必须”支持以非阻塞方式执行I/O调用[需求澄清]:当Java实现通过socket读取来完成网络I/O操作时,读取线程仅会在等待从socket读完数据时阻塞,但读取线程不能阻塞在Java环境中的其他线程;任何情况下,通过socket的I/O调用进行的读写操作,都不应使Java虚拟机停滞或挂起。[需求编号]:TS-JAVA-JSR-MIDP-000015[分级]:基础级[需求描述]:PlatformRequest对URI的处理方法[需求澄清]:PlatformRequest的实现“必须”严格支持对以下URI的处理方法-HTTP/HTTPSuri:激活时使用该URI打开浏览器;-遵从RFC2806定义(包括DTMF)的teluri:激活时使用正确的电话号码和DTMF输入建立话音连接(请注意同时遵守MIDP2.0安全实践指南中关于电话号码用户确认的要求)。[需求编号]:TS-JAVA-JSR-MIDP-000016[分级]:1级[需求描述]:PlatformRequest对邮件的URI的处理策略[需求澄清]:如果终端本地的邮件客户端可用,则“推荐”PlatformRequest的实现应支持邮件的URL策略,即调用本地邮件客户端发送邮件。邮件功能的URL应遵从RFC2368规范。[需求编号]:TS-JAVA-JSR-MIDP-000017[分级]:基础级[需求描述]:PlatformRequest需要用户进行确认[需求澄清]:终端应提示用户确认由platformRequest发起的业务。电话呼叫必须向用户提示被叫号码;对于启动浏览器至少要提示URL的域名部分。[需求编号]:TS-JAVA-JSR-MIDP-000018[分级]:基础级[需求描述]:对于MIDP2.1安全实践指南(RecommendedSecurityPractices)的要求[需求澄清]:除本标准明确指出的例外情况以外,终端上的Java实现必须符合MIDP2.1安全实践指南(RecommendedSecurityPractices)。[需求编号]:TS-JAVA-JSR-MIDP-000019[分级]:基础级[需求描述]:Java实现对于根证书存放和读取的要求43 QB-╳╳-╳╳╳-╳╳╳╳[需求澄清]:如果手机同时支持在手机和在U/SIM卡上存放根证书,以U/SIM卡存放的根证书优先,供可信任第三方和运营商域使用;U/SIMcard上的根证书不允许拷贝到终端之上。[需求编号]:TS-JAVA-JSR-MIDP-000020[分级]:基础级[需求描述]:终端对网络连接的支持要求[需求澄清]:终端Java实现“必须”支持至少3个同时存在的的网络连接,这些网络连接包括:HTTP/HTTPS/Socket/Secure/Datagram,“必须”支持至少3个并发的HTTP和Socket网络连接。[需求编号]:TS-JAVA-JSR-MIDP-000021[分级]:基础级[需求描述]:MIDlet.platformRequest()对应用前后台调度[需求澄清]:如果终端能够提供相应的能力和资源(这些能力泛指,终端配备的处理器运算能力,ram的大小,终端OS的功能),应允许将本地应用调到前台运行,并允许用户与该应用进行交互,而同时将java应用放到后台运行,而在后台时,java虚拟机和java应用的状态,“必须”符合附录F中规定的状态。[需求编号]:TS-JAVA-JSR-MIDP-000022[分级]:基础级[需求描述]:终端“必须”支持预装用于在Java上建立安全连接的根证书。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-000023[分级]:基础级[需求描述]:Java虚拟机支持键值的映射要求[需求澄清]:除了javax.microedition.lcdui.Canvas规定的按键编码设定之外,对于绝大多数的终端(除触摸屏终端外),Java实现必须支持下表要求的键值映射:表5-2键值要求列表按键键值LEFT-3UP-1RIGHT-4DOWN-2SELECT-5CLEAR-8[需求编号]:TS-JAVA-JSR-MIDP-000024[分级]:1级[需求描述]:对InputStream.read()方法的要求[需求澄清]:Java实现“必须”支持随时停止一个读进程,然后快速启动一个新的读进程。此处要求一个InputStream“必须”能够被随时关闭,即使InputStream.read()正在被调用中。43 QB-╳╳-╳╳╳-╳╳╳╳[需求编号]:TS-JAVA-JSR-MIDP-000026[分级]:1级[需求描述]:对半透明(alpha剪裁)支持的要求[需求澄清]:Java终端“必须”支持256级的半透明(alpha剪裁)[需求编号]:TS-JAVA-JSR-MIDP-000027[分级]:1级[需求描述]:“推荐”Java终端禁止最终用户通过本地文件浏览器或者其他机制访问RMS。[需求澄清]:无[需求编号]:TS-JAVA-JSR-MIDP-000028[分级]:基础级[需求描述]:startApp()状态的语义解释[需求澄清]:当一个midlet从暂停状态恢复到活动状态时,Java终端应立即调用javax.microedition.MIDlet.startApp()。不允许终端在其他场景下调用startApp(),Java应用本身不应调用startApp()。当执行startApp()时,midlet处为活动状态。[需求编号]:TS-JAVA-JSR-MIDP-000029[分级]:基础级[需求描述]:pauseApp()状态的语义解释1[需求澄清]:在执行完javax.microedition.MIDlet.pauseApp()方法时,终端应将midlet置为暂停状态停止其执行。当执行pauseApp()时,midlet处于活动状态。如果pauseApp()执行过程中出现RuntimeException,则midlet将进入destroyed状态[需求编号]:TS-JAVA-JSR-MIDP-000030[分级]:基础级[需求描述]:pauseApp()状态的语义解释2[需求澄清]:终端应支持通过javax.microedition.MIDlet.pauseApp()方法来暂停一个midlet,该操作应在一定时间内完成,在超过该时间要求时,应中断pauseApp()执行并强制MIDlet退出。该执行时间是依赖于终端软硬件能力,中国移动推荐2秒钟。[需求编号]:TS-JAVA-JSR-MIDP-000031[分级]:基础级[需求描述]:destroyApp()状态的语义解释1[需求澄清]:终端应支持通过javax.microedition.MIDlet.destroyApp()方法来终止一个midlet,该操作应在一定时间内完成,执行在超过该时间要求时,应中断destroyApp()执行并强制MIDlet退出。该执行时间是依赖于终端软硬件能力,中国移动推荐2秒钟。[需求编号]:TS-JAVA-JSR-MIDP-000032[分级]:基础级[需求描述]:暂停状态的语义解释2[需求澄清]:当一个midlet被宣告处于暂停状态时,终端应该停止该midlet对其它本地应用也需要的系统资源(如媒体播放)的使用。43 QB-╳╳-╳╳╳-╳╳╳╳[需求编号]:TS-JAVA-JSR-MIDP-000033[分级]:基础级[需求描述]:全屏状态下的软键执行[需求澄清]:在全屏模式下,MIDP2.1中定义的Command类的功能“必须”可用。[需求编号]:TS-JAVA-JSR-MIDP-000034[分级]:基础级[需求描述]:全屏模式和普通显示模式[需求澄清]:Java实现“必须”支持Java应用全屏模式和普通显示模式。[需求编号]:TS-JAVA-JSR-MIDP-000035[分级]:基础级[需求描述]:Java实现对图片格式的支持。[需求澄清]:Java实现“必须”支持JPEG、JPG、PNG、BMP和GIF(无GIF动画)的图片格式。[需求编号]:TS-JAVA-JSR-MIDP-000038[分级]:基础级[需求描述]:LCDUI图形组件提示文本方式的要求[需求澄清]:很多MIDPLCDUI图形组件均可以包含向用户提示的文本。同一Java实现在向用户作文本提示时,必须和终端本地UI中的可视化提示方式一致。[需求编号]:TS-JAVA-JSR-MIDP-000039[分级]:基础级[需求描述]:对于文本输入法的要求[需求澄清]:在本地汉字输入法可用的情况下,java环境“必须”能够使用本地输入法来输入汉字。[需求编号]:TS-JAVA-JSR-MIDP-000053[分级]:基础级[需求描述]:支持振动和背光的要求[需求澄清]:如果终端支持背光,“按条件必须”在Java支持中提供该功能的使用。终端“必须”在Java支持中提供振动功能的使用。[需求编号]:TS-JAVA-AMS-MIDP-000121[分级]:基础级[需求描述]:字体大小[需求澄清]:终端应采用以下几种字体显示尺寸i)SIZE_LARGEii)SIZE_MEDIUMiii)SIZE_SMALL实际的字体应与终端本地实现的字体设置相对应。43 QB-╳╳-╳╳╳-╳╳╳╳5.1.5PDAAPI——JSR075[需求编号]:TS-JAVA-JSR-PDA-000040[分级]:基础级[需求描述]:终端JSR75的支持要求[需求澄清]:终端“必须”支持JSR-75(包括PIM和FileConnection两部分)。[需求编号]:TS-JAVA-JSR-PDA-000041[分级]:1级[需求描述]:“CMCC”文件夹的要求[需求澄清]:终端“推荐”使用一个独立的文件夹“CMCC”来存放被中国移动信任应用的数据。[需求编号]:TS-JAVA-JSR-PDA-000148[分级]:基础级[需求描述]:支持中文名目录和文件的要求[需求澄清]:终端“必须”支持应用创建和访问中文名的目录和文件。[需求编号]:TS-JAVA-JSR-PDA-000042[分级]:1级[需求描述]:对于中国移动信任应用,必须使用以下JADattribute,以保证该信任应用的所有内容都保存在同一文件夹下:CMCC-Directory:[directory_name][需求澄清]:终端“推荐”根据JAD文件中规定的"CMCC-Directory"属性,在"cmcc"文件夹下为每一个中国移动信任的应用创建独立的工作文件夹,这些独立文件夹应先于相应应用执行之前被创建。这些基于CMCC-Directory的独立工作文件夹应能按照“file:///[directory_name]”的url格式的通过FileConnection进行访问。(详见附录D)[需求编号]:TS-JAVA-JSR-PDA-000043[分级]:1级[需求描述]:对于文件访问的限制[需求澄清]:“推荐”Java实现禁止其他应用或用户访问当前应用或用户的私有文件夹或目录,同时“推荐”Java实现禁止对系统的配置文件,以及终端和OS专有文件及目录。[需求编号]:TS-JAVA-JSR-PDA-000044[分级]:基础级[需求描述]:通过FileConnection对外部存储卡的访问要求[需求澄清]:当终端上存在任何可用的外部存储设备(如SD卡,MMC卡),终端“必须”支持FileConnection通过"file:///memory_card/"方式去访问至少一个可用的外部存储设备。[需求编号]:TS-JAVA-JSR-PDA-000045[分级]:基础级[需求描述]:vCard2.1和vCalendar1.0格式要求43 QB-╳╳-╳╳╳-╳╳╳╳[需求澄清]:如果终端预置PIM功能,则“必须”支持vCard2.1,“推荐”支持vCalendar1.0[需求编号]:TS-JAVA-JSR-PDA-000046[分级]:基础级[需求描述]:PIM支持字段要求[需求澄清]:如果终端预置PIM功能,则对Contact、Event和Todo字段强制要求参见附录A5.1.6MobileMultimediaAPI——JSR135[需求编号]:TS-JAVA-JSR-MMA-000047[分级]:2级[需求描述]:流媒体的访问方式要求[需求澄清]:如果终端支持RTSP协议以及H.264解码,终端“按条件必须”通过MMAPI遵循3GPPTS26.234支持流媒体。流媒体的访问必须通过以RTSPURL方式定义的数据源来进行。[需求编号]:TS-JAVA-JSR-MMA-000048[分级]:基础级[需求描述]:对媒体类型、媒体控制器以及对应协议的要求[需求澄清]:Java实现必须符合MMAPI附录B中对媒体类型、媒体控制器以及对应协议的要求。其中3GP格式作为“第一级”必选要求[需求编号]:TS-JAVA-JSR-MMA-000049[分级]:基础级[需求描述]:对MetaData控制的要求[需求澄清]:终端“必须”支持MetaDataControl(包括作者、版权信息等)。[需求编号]:TS-JAVA-JSR-MMA-000051[分级]:基础级[需求描述]:对音量控制键的要求[需求澄清]:如果终端有通用的音量控制键(一般为侧按键),Java应用音量“按条件必须”可以通过该音量控制键来控制其音量大小。[需求编号]:TS-JAVA-JSR-MMA-000052[分级]:基础级[需求描述]:对混音的要求[需求澄清]:本功能要求用户在玩游戏时,如果终端支持至少两通道混音,应用程序“按条件必须”同时播放背景音乐和附加的音效,如“射击”声。支持音频混音的类型,至少应包括:1路Midi+1路Wav。43 QB-╳╳-╳╳╳-╳╳╳╳5.1.7Mobile3DGraphics1.0——JSR184[需求编号]:TS-JAVA-JSR-M3G-000054[分级]:1级[需求描述]:对3D图形的要求[需求澄清]:终端“必须”支持JSR-1845.1.8WirelessMessagingAPI1.1/2.0——JSR120/JSR205[需求编号]:TS-JAVA-JSR-WMA-000055[分级]:基础级[需求描述]:对JSR120的支持要求[需求澄清]:终端“必须”支持JSR-120[需求编号]:TS-JAVA-JSR-WMA-000056[分级]:1级[需求描述]:对JSR205的支持要求[需求澄清]:终端“必须”支持JSR-205[需求编号]:TS-JAVA-JSR-WMA-000058[分级]:基础级[需求描述]:对Push应用的支持[需求澄清]:终端在MIDP2.1Push协议支持中,“必须”支持SMS/TimeAlarm。MMSPush作为第一级要求。[需求编号]:TS-JAVA-JSR-WMA-000059[分级]:基础级[需求描述]:对携带端口号短信的监听与处理[需求澄清]:当某个规定的接听端口收到短消息,终端应转送这一短消息以激活JavaPushRegistry来唤醒Java应用。对于这样的短消息终端不应作声音提示,也不应呈现在短消息收件箱中。5.1.9JavaMESecurityandTrustService——JSR177[需求编号]:TS-JAVA-JSR-SATSA-000060[分级]:1级[需求描述]:对JSR-177的支持要求[需求澄清]:如果终端有智能卡(SmartCard),Java实现“必须”支持SATSA-APDU和SATSA-PKI接口。[需求编号]:TS-JAVA-JSR-SATSA-00006143 QB-╳╳-╳╳╳-╳╳╳╳[分级]:2级[需求描述]:对SATSA-CRYPTO的支持要求[需求澄清]:Java实现“必须”支持SATSA-CRYPTO,以及以下两种强制算法Message-Digest算法:MD5和SHA密钥算法:RSA和DES5.1.10JavaMEScalable2DVectorGraphics1.0——JSR226[需求编号]:TS-JAVA-JSR-SVG-000063[分级]:2级[需求描述]:对JSR-226的支持要求[需求澄清]:终端“必须”支持JSR-226。5.1.11MobileMultimediaAPI(Advanced)——JSR234[需求编号]:TS-JAVA-JSR-AMMA-000064[分级]:2级[需求描述]:对JSR234的支持要求[需求澄清]:除本标准明确要求以外(即TS-JAVA-JSR-AMMA-000065,TS-JAVA-JSR-AMMA-000066,TS-JAVA-JSR-AMMA-000067,TS-JAVA-JSR-AMMA-000069,TS-JAVA-JSR-AMMA-000070),对于JSR234内包含的其他功能要求为“推荐”实现。[需求编号]:TS-JAVA-JSR-AMMA-000065[分级]:2级[需求描述]:对摄像头的控制要求[需求澄清]:CameraControl控制终端的摄像头功能。终端“必须”支持通过getControl和getControls方法提供CameraControl,实现对摄像头拍摄的媒体流进行控制。[需求编号]:TS-JAVA-JSR-AMMA-000066[分级]:2级[需求描述]:摄像头曝光的控制要求[需求澄清]:终端“必须”支持通过getControl和getControls方法对摄像头拍摄内容提供ExposureControl控制。[需求编号]:TS-JAVA-JSR-AMMA-000067[分级]:2级[需求描述]:摄像头对焦的控制要求[需求澄清]:终端“必须”支持由FocusControl控制摄像头的对焦;如果终端支持微距功能,则终端“必须”支持由FocusControl控制对微距模式的设置。[需求编号]:TS-JAVA-JSR-AMMA-000069[分级]:2级43 QB-╳╳-╳╳╳-╳╳╳╳[需求描述]:摄像头连拍的控制要求[需求澄清]:终端“必须”支持由SnapshotControl控制摄像头进行连拍。[需求编号]:TS-JAVA-JSR-AMMA-000070[分级]:2级[需求描述]:摄像头变焦的控制要求[需求澄清]:终端“必须”支持由ZoomControl控制摄像头进行数字变焦和光学变焦。5.1.12LocationAPI1.0——JSR179[需求编号]:TS-JAVA-JSR-LOCA-000071[分级]:基础级[需求描述]:对JSR-179的支持要求[需求澄清]:具有GPS/AGPS模块的终端设备“按条件必须”支持JSR-179。5.1.13ContactlessCommunication——JSR257[需求编号]:TS-JAVA-JSR-CTLS-000072[分级]:基础级[需求描述]:对JSR-257的支持要求[需求澄清]:具有NFC模块的终端设备“按条件必须”支持JSR-257。5.1.14OpenGLES——JSR239[需求编号]:TS-JAVA-JSR-OPGL-000073[分级]:2级[需求描述]:对JSR-239的支持要求[需求澄清]:终端设备如果具有OpenGLES硬件加速能力,则“推荐”支持JSR-239。5.1.15BluetoothAPI——JSR82[需求编号]:TS-JAVA-JSR-BLTH-000074[分级]:1级[需求描述]:对JSR-82的支持要求[需求澄清]:终端设备如果具有蓝牙功能,则“按条件必须”支持JSR82。43 QB-╳╳-╳╳╳-╳╳╳╳5.2中国移动扩展要求[需求编号]:TS-JAVA-CMCC-EXT-000075[分级]:基础级[需求描述]:读取IMEI及IMSI信息的扩展方法要求[需求澄清]:扩展标准的java.lang.System.getProperty(),“必须”支持获得以下信息:"IMEI",终端IMEI信息"IMSI",终端IMSI信息只有CMCC信任的Midlet可以读取终端IMSI属性,否则抛出SecutiryException;如果终端上同时存在类似功能的厂商扩展属性,则只有CMCC信任或者终端厂商信任的Midlet才可以读取终端IMSI属性。[需求编号]:TS-JAVA-CMCC-EXT-000149[分级]:基础级[需求描述]:读取终端型号信息的扩展方法要求[需求澄清]:“推荐”虚拟机通过扩展System.getProperty("microedition.platform"),支持应用获得终端制造商、型号信息及版本信息,返回格式要求如下:/例如:NOKIA6320型号03.32软件返回为"Nokia6230i/03.32"[需求编号]:TS-JAVA-CMCC-EXT-000076[分级]:2级[需求描述]:对VM状态的侦听[需求澄清]:Java虚拟机应提供相应的机制实现对VM前后台状态的监听,推荐通过com.cmcc.util.VmStateListener来获取VM前台/后台状态。[需求编号]:TS-JAVA-CMCC-EXT-000077[分级]:2级[需求描述]:应用前后台切换的扩展方法要求[需求澄清]:终端应提供相应机制提示用户将后台运行程序切换到前台运行,“推荐”使用com.cmcc.util.VmRuntime::showIndication提示用户切换,由用户将后台运行程序切换至前台;对于前台运行程序,终端“必须”允许终端用户将一个前台程序通过某种机制推到后台运行。一种“推荐“方式是用户通过按下一个按键(如POWER键)以弹出一个对话框提示最终用户选择“暂停”/“最小化”/“关闭”该应用。“最小化”意味着将应用由前台调至后台运行。5.3AMS的功能要求5.3.1通用要求[需求编号]:TS-JAVA-AMS-GEN-000078[分级]:基础级43 QB-╳╳-╳╳╳-╳╳╳╳[需求描述]:Java终端AMS“必须”支持midlet应用的本地安装。[需求澄清]:无[需求编号]:TS-JAVA-AMS-GEN-000079[分级]:1级[需求描述]:Java实现“必须”支持AMS对安装midlet应用的分组[需求澄清]:无[需求编号]:TS-JAVA-AMS-GEN-000080[分级]:基础级[需求描述]:对TCK测试要求[需求澄清]:Java实现“必须”通过相应的TCK测试。5.3.2下载配置要求[需求编号]:TS-JAVA-AMS-PRVN-000081[分级]:基础级[需求描述]:OTA过程“必须”遵循JCP组织相关规范[需求澄清]:MIDPOTA下载过程必须遵循JCP组织对OTA的有关规范。(注:MIDP2.1,OvertheAirUserInitiatedProvisioningSpecification)[需求编号]:TS-JAVA-AMS-PRVN-000082[分级]:1级[需求描述]:对MIDlets发现的要求[需求澄清]:终端“必须”支持通过WAP浏览器发现JAVAMIDlets的能力。[需求编号]:TS-JAVA-AMS-PRVN-000083[分级]:基础级[需求描述]:对于应用描述文件(ApplicationDescriptor)及其下载的要求[需求澄清]:OTA下载过程中,Java应用“必须”包含应用描述文件(ApplicationDescriptor)且应用描述文件(ApplicationDescriptor)应首先下载到终端上。[需求编号]:TS-JAVA-AMS-PRVN-000084[分级]:基础级[需求描述]:对代理使用的支持要求[需求澄清]:为了使基于TCP/IP协议栈下载JAD/JAR文件的方法能够通过WAP2.0网关,要求终端“必须”支持代理的使用。[需求编号]:TS-JAVA-AMS-PRVN-000085[分级]:基础级[需求描述]:对request-header属性的要求[需求澄清]:获取应用时,“必须”使用MIDP2.1[DeviceIdentificationandRequestHeaders]部分中定义的request-header属性。43 QB-╳╳-╳╳╳-╳╳╳╳[需求编号]:TS-JAVA-AMS-PRVN-000086[分级]:基础级[需求描述]:对于Accept取值要求[需求澄清]:当请求MIDletsuites时,HTTP头Accept取值必须包括application/java-archive;当请求应用程序描述文件时,Accept“必须”包括text/vnd.sun.j2me.app-descriptor。[需求编号]:TS-JAVA-AMS-PRVN-000087[分级]:基础级[需求描述]:对于Accept-Language属性要求[需求澄清]:请求头部的Accept-Language属性“必须”遵循RFC2616定义,指明终端目前使用的语言。[需求编号]:TS-JAVA-AMS-PRVN-000088[分级]:基础级[需求描述]:下载成功的提示要求[需求澄清]:当应用成功下载之后,终端“必须”告知用户成功下载的消息。[需求编号]:TS-JAVA-AMS-PRVN-000089[分级]:基础级[需求描述]:应用安装过程的要求[需求澄清]:应用安装过程中,终端应告知用户进度,并给予用户中止该过程的选择。如果安装过程中止,终端“必须”恢复到安装开始前的状态。[需求编号]:TS-JAVA-AMS-PRVN-000090[分级]:基础级[需求描述]:应用安装成功的提示[需求澄清]:当应用成功安装且安装成功报告已被下载服务器成功接收(获得报告发送成功确认)之后,终端必须告知用户成功安装的消息。[需求编号]:TS-JAVA-AMS-PRVN-000091[分级]:1级[需求描述]:应用安装成功的状态上报要求[需求澄清]:当应用成功安装之后,终端必须向下载服务器发送成功安装的状态报告。如下载服务器在超时时间内未返回已收到状态报告的确认回复,那么终端应重发安装成功状态报告,如重发3次后依然未能获得报告发送成功确认,则终端应删除已安装应用,并提示用户安装不成功[需求编号]:TS-JAVA-AMS-PRVN-000092[分级]:基础级[需求描述]:应用运行错误的处理要求[需求澄清]:应用运行时如果发生错误,终端实现必须提供相应机制,保证终端可以被恢复到AMS的界面或者终端待机画面,同时“必须”43 QB-╳╳-╳╳╳-╳╳╳╳保证用户了解错误的发生和应该采取的步骤。[需求编号]:TS-JAVA-AMS-PRVN-000093[分级]:基础级[需求描述]:应用删除操作的要求[需求澄清]:终端“必须”提供允许用户删除应用的能力。应用将被删除前,终端“必须”提示用户确认。如果被删除的应用程序符合下面任意一种情况,提示的内容还“必须”包含下面的风险信息。1)该应用程序包含多个midlet,而且都要被删除2)该应用程序包含相关的recordstores,而且都要被删除[需求编号]:TS-JAVA-AMS-PRVN-000094[分级]:基础级[需求描述]:删除操作过程的异常检测[需求澄清]:在开始删除应用程序前,终端“必须”检查该应用程序是否在运行,如果该程序正处于运行状态,终端“推荐”向用户提示,并停止删除操作,同时不能因此影响程序的正常运行。[需求编号]:TS-JAVA-AMS-PRVN-000095[分级]:基础级[需求描述]:对MIDlet-JAR-URL属性支持要求[需求澄清]:Java实现“必须”支持基于JAD文件中MIDlet-JAR-URL属性定义的对应URL来下载JAR文件。[需求编号]:TS-JAVA-AMS-PRVN-000096[分级]:1级[需求描述]:对MIDlet-Delete-Notify属性支持要求[需求澄清]:一旦已安装的应用被删除,Java实现应向JAD文件中MIDlet-Delete-Notify属性定义的URL放送删除通知。5.3.3Java应用的管理[需求编号]:TS-JAVA-AMS-MNJA-000097[分级]:基础级[需求描述]:预装应用要求[需求澄清]:所有定制终端上预装应用都“必须”获得中国移动批准。[需求编号]:TS-JAVA-AMS-MNJA-000098[分级]:基础级[需求描述]:对预装程序的删除和更新处理[需求澄清]:Java终端“必须”保证预装应用不能被删除但可以被更新。同时要求某个预装应用更新后,“中国移动服务”下的快捷方式仍可以正确指向该应用43 QB-╳╳-╳╳╳-╳╳╳╳5.3.4内存要求[需求编号]:TS-JAVA-AMS-MEM-000100[分级]:基础级[需求描述]:对MIDLetSuiteJAR文件大小的支持要求[需求澄清]:终端必须至少能够支持800KB以内的MIDLetSuiteJAR文件。[需求编号]:TS-JAVA-AMS-MEM-000101[分级]:基础级[需求描述]:对JAD文件大小的支持要求[需求澄清]:终端必须至少能够支持10KB以内的JAD文件。[需求编号]:TS-JAVA-AMS-MEM-000102[分级]:基础级[需求描述]:对RecordStore大小的支持要求[需求澄清]:终端“必须”至少能够支持64KB以内的RecordStore。[需求编号]:TS-JAVA-AMS-MEM-000103[分级]:基础级[需求描述]:对堆空间大小的支持要求[需求澄清]:JAVA应用程序前台运行时,终端“必须”至少能够支持2MB的堆空间存储。[需求编号]:TS-JAVA-AMS-MEM-000104[分级]:基础级[需求描述]:对应用程序的存储空间要求[需求澄清]:JAVA应用程序的存储空间(不包括JAVA虚拟机及CLDC的库函数的空间),“必须”不小于1MB空间。[需求编号]:TS-JAVA-AMS-MEM-000105[分级]:基础级[需求描述]:对于recordstore的最小存储空间要求[需求澄清]:Java实现“必须”保证每个MIDletsuite不少于30kB的recordstore。在此前提下终端还应根据JAD文件中规定的MIDlet-Data-Size来决定预留存储空间。5.3.5安全性要求[需求编号]:TS-JAVA-AMS-SEC-000106[分级]:基础级[需求描述]:对TrustedMIDlet支持的要求[需求澄清]:Java终端“必须”支持MIDP规范定义的TrustedMIDlet。43 QB-╳╳-╳╳╳-╳╳╳╳[需求编号]:TS-JAVA-AMS-SEC-000108[分级]:基础级[需求描述]:第三方安全域的支持[需求澄清]:Java终端“必须”支持第三方安全域。[需求编号]:TS-JAVA-AMS-SEC-000109[分级]:基础级[需求描述]:对中国移动安全域的要求[需求澄清]:Java终端“必须”支持符合中国移动要求的运营商安全域,对于各安全域的安全策略请参见附录C。[需求编号]:TS-JAVA-AMS-SEC-000110[分级]:基础级[需求描述]:对于应用认证的澄清[需求澄清]:应用认证只在安装时进行一次,在应用启动时不再作认证检查。证书过期不会影响已经安装的应用的可用性。[需求编号]:TS-JAVA-AMS-SEC-000111[分级]:基础级[需求描述]:应用认证不允许被绕过[需求澄清]:终端“必须”禁止提供任何绕过对MIDlets进行信任认证的方式。[需求编号]:TS-JAVA-AMS-SEC-000112[分级]:基础级[需求描述]:权限列表和根证书的不可篡改性[需求澄清]:禁止采用任何方式篡改预先定义好的权限列表及根证书。[需求编号]:TS-JAVA-AMS-SEC-000114[分级]:基础级[需求描述]:通过本地方式安装的MIDlet的认证要求[需求澄清]:即便Java应用是通过本地文件系统安装,MIDlet认证也“必须”执行。[需求编号]:TS-JAVA-AMS-SEC-000115[分级]:基础级[需求描述]:权限设置的粒度[需求澄清]:终端实现必须能够为不同应用程序设置不同的权限。5.3.6用户体验要求[需求编号]:TS-JAVA-AMS-UEXP-000116[分级]:基础级[需求描述]:斜向移动光标要求[需求澄清]:用户“必须”43 QB-╳╳-╳╳╳-╳╳╳╳可以斜向移动光标。当八方向(或九方向)导航不能被支持时,终端必须支持2键组合的模拟操作,允许用户斜向移动(同时按住两个键)。当斜向移动被按键直接支持时(如1,3,5,9数字键)可以同时按住其他游戏功能键操作(例如:游戏中的开火键)。[需求编号]:TS-JAVA-AMS-UEXP-000117[分级]:基础级[需求描述]:安装过程中的错误处理[需求澄清]:应用程序的安装过程中(包括下载过程)产生任何错误,都必须不能影响终端设备其他模块的正常运行;同时终端实现必须提供相应机制,保证终端可以被恢复到安装开始前的画面,同时必须保证用户了解错误的发生和应该采取的步骤。[需求编号]:TS-JAVA-AMS-UEXP-000118[分级]:基础级[需求描述]:电源中断时RMS稳定性[需求澄清]:非正常关机,电池用尽及终端关机几种情况下,RMS文件系统都不应该被破坏,数据也不应丢失。[需求编号]:TS-JAVA-AMS-UEXP-000119[分级]:基础级[需求描述]:私有API的要求[需求澄清]:终端上存在的私有API实现不能违反本标准内规定的任何要求。[需求编号]:TS-JAVA-AMS-UEXP-000120[分级]:基础级[需求描述]:MIDlet的退出[需求澄清]:当一个一直处于前台运行的MIDlet退出后,终端应显示该MIDlet执行前完全相同的屏幕内容(例如用户从一个包含多个MIDlet的MIDletsuite中启动了一个MIDlet,退出该MIDlet将使屏显返回到在MIDletsuite中选择MIDlet且该MIDlet已被选中的屏显状态)或者HomeScreen。[需求编号]:TS-JAVA-AMS-UEXP-000122[分级]:基础级[需求描述]:终端对方向控制的要求[需求澄清]:终端“必须”支持对四路方向的控制。[需求编号]:TS-JAVA-AMS-UEXP-000123[分级]:基础级[需求描述]:对于存在编程错误的MIDlet的处理要求[需求澄清]:存在编程错误的MIDlet不应导致终端重启,例如除以0的操作或者没有异常处理机制的严重错误应该由虚拟机进行适当处理,而不会对MIDlets封装造成危害,并且应向用户作适当的错误提示。[需求编号]:TS-JAVA-AMS-UEXP-000124[分级]:基础级43 QB-╳╳-╳╳╳-╳╳╳╳[需求描述]:对失控MIDlet的处理要求[需求澄清]:失去控制的MIDlet(例如"死循环")不应导致用户重启终端;应允许用户通过标准的MMI功能控制JAM随时中断有问题的应用运行。5.3.7事件处理要求[需求编号]:TS-JAVA-AMS-EVNT-000125[分级]:1级[需求描述]:MIDlet暂停与退出[需求澄清]:当终端支持MIDlet后台运行能力时,终端应提供按键供用户暂停处于运行状态的MIDlet。该接口还应能提示用户退出或恢复。支持多任务机制时,也应通过此方式允许暂停其他MIDlet。[需求编号]:TS-JAVA-AMS-EVNT-000126[分级]:基础级[需求描述]:在网页浏览和来电时,记录原有状态[需求澄清]:如果终端支持多任务,用户可以在网页浏览结束或电话结束后,通过记录原状态,返回到先前的应用。[需求编号]:TS-JAVA-AMS-EVNT-000127[分级]:基础级[需求描述]:外部事件(电话/合盖)的Notification[需求澄清]:终端应该对“来电”、物理上“休眠”等这类事件进行侦听,如果这些这些事件发生,终端应通知正在运行的MIDlet。例如,当这些事件发生时,终端应有能力调用pauseApp()或者hideNotify()来暂停midlet或者隐藏midlet界面。而终端可以调用startApp()或者showNotify()来继续midlet执行或者重新显示界面,而在这些事件处理的过程中,midlet调用当前Displayable对象的isShown()将返回false。[需求编号]:TS-JAVA-AMS-EVNT-000128[分级]:1级[需求描述]:在不支持多任务的终端上对外部事件的处理[需求澄清]:当发生附录F中提及的外部事件时,“必须”保证虚拟机和应用程序的状态符合附录F中规定的状态。[需求编号]:TS-JAVA-AMS-EVNT-000130[分级]:基础级[需求描述]:TD-SCDMA承载模式下,连接后台运行要求[需求澄清]:对于TD-SCDMA承载模式下,当来电时,终端网络连接依然可以在后台保持运行。[需求编号]:TS-JAVA-AMS-EVNT-000131[分级]:基础级[需求描述]:程序运行中对用户主动中断的处理43 QB-╳╳-╳╳╳-╳╳╳╳[需求澄清]:如果终端支持VM切换到后台:1)当用户想拨打电话的时候,终端必须提供用户暂停当前运行的J2ME应用程序,对midlet来说,就是把其状态由“active"转变成“暂停“。要达到这个效果,可以用间接方式(例如用户按“拨出“键,或者直接方式,例如JAM提供“暂停”功能)。2)当通话结束或者短信发送完毕时,AMS应提供把被暂停的应用程序手动恢复到执行状态,使得应用程序继续运行。5.3.8网络接入要求[需求编号]:TS-JAVA-AMS-ACNT-000132[分级]:基础级[需求描述]:Java应用进行网络连接参数的设置[需求澄清]:终端对于本要求与TS-JAVA-AMS-ACNT-000134要求必须采用“二者选其一”方式支持,本规范建议终端优先采用本要求包含的技术方案进行实现。Java实现支持通过JAD文件中规定的"PREFERRED-Con-Profile-TO-USE"属性,来支持已安装的应用设置优先的网络连接参数;为了保证Java各应用连接网络的独立性,每个Java应用套件在执行前或执行中应单独有网络连接配置选择,如JAD含有"PREFERRED-Con-Profile-TO-USE",则优先连接"PREFERRED-Con-Profile-TO-USE"对应的网络连接,即该JAD属性值对应于该优先选中的网络连接的接入点;例如,"PREFERRED-Con-Profile-TO-USE:cmwap"优先对应网络连接“移动梦网”(其接入点为cmwap),或其他网络连接配置,其接入点为cmwap。不含REFERRED-Con-Profile-TO-USE属性,则“推荐”终端应允许用户选择已有的某一个Profile;如果根据PREFERRED-Con-Profile-TO-USE属性没有找到对应的接入点,则“推荐”终端提示用户选择已有的某一个Profile;[需求编号]:TS-JAVA-AMS-ACNT-000133[分级]:基础级[需求描述]:预装应用的网络连接参数的不可修改性[需求澄清]:预装应用所使用的网络连接设置不允许用户修改,即如果预装网络应用的JAD属性含"PREFERRED-Con-Profile-TO-USE",该Java应用套件在执行前或执行中的网络连接设置不可更改。[需求编号]:TS-JAVA-AMS-ACNT-000134[分级]:基础级[需求描述]:Java应用进行网络连接参数的设置[需求澄清]:推荐按照TS-JAVA-AMS-ACNT-000132的方式实现;如Java实现确不支持"PREFERRED-Con-Profile-TO-USE"属性字段,则Java应用套件在执行前或执行中终端应提示用户终端上已有的网络连接参数,由用户自行选择,默认网络连接可以采用当前终端默认的数据连接配置(wap浏览器当前默认的数据连接)。[需求编号]:TS-JAVA-AMS-ACNT-000135[分级]:基础级[需求描述]:UserAgent的同一性要求43 QB-╳╳-╳╳╳-╳╳╳╳[需求澄清]:下载同一应用的JAD/JAR时,UA应是相同的。5.3.9应用并发的要求[需求编号]:TS-JAVA-AMS-COCU-000136[分级]:1级[需求描述]:后台运行的支持要求[需求澄清]:如果终端支持多任务且具备相应的资源和能力,那么它“必须”支持Java应用后台运行能力。[需求编号]:TS-JAVA-AMS-COCU-000137[分级]:1级[需求描述]:应用程序运行的连贯性要求[需求澄清]:中国移动信任的应用程序以及预装应用可以在前后台运行之间进行切换。切换过程中以及在后台运行时,该应用应保持连贯性,如正在播放媒体,则播放的连贯性和质量不应发生变化。[需求编号]:TS-JAVA-AMS-COCU-000138[分级]:1级[需求描述]:后台运行应用对其他本地应用的影响[需求澄清]:当应用在后台运行时,终端应允许其他本地应用及下载功能正常运行。这些应用和功能包括但不限于对SMS/MMS消息的读取、接收和响应;终端上WEB浏览器的使用,从WEB页面下载文件及其他免费或付费内容;拍照及保存;玩游戏;通过用户界面浏览和修改终端设置。需求编号]:TS-JAVA-AMS-COCU-000139[分级]:2级[需求描述]:对于MVM的MIDlets暂停或活动状态显示[需求澄清]:在MVM环境中,当从JAVA文件夹中显示MIDlets时,设备应该让用户了解MIDlets是暂停还是活动状态,这一要求同样适用于支持对Java应用挂起的终端。[需求编号]:TS-JAVA-AMS-COCU-000140[分级]:1级[需求描述]:后台midlet状态语义的解释[需求澄清]:当一个midlet处于后台时,终端不应该发送任何键盘或者键盘输入事件到midlet。[需求编号]:TS-JAVA-AMS-COCU-000141[分级]:1级[需求描述]:后台安全提示[需求澄清]:对于支持虚拟机后台运行的终端,当虚拟机需要做安全提示时,终端应中断后台的midlet运行,并保证其状态不应发生变化,在用户确认之前midlet不允许运行。43 QB-╳╳-╳╳╳-╳╳╳╳[需求编号]:TS-JAVA-AMS-COCU-000142[分级]:1级[需求描述]:在后台退出MIDlet[需求澄清]:当midlet处于后台状态时,用户可以退出该MIDlet。[需求编号]:TS-JAVA-AMS-COCU-000143[分级]:2级[需求描述]:多Java应用同时运行的支持[需求澄清]:终端应支持多任务的Java模型,以允许多个Java应用同时运行。[需求编号]:TS-JAVA-AMS-COCU-000144[分级]:1级[需求描述]:对原有MIDlet的退出的用户确认。[需求澄清]:对于不支持MVM但支持虚拟机后台运行的终端,当一个midlet在后台运行时,MMI请求启动另一个midlet,终端应要求用户确认是否退出后台运行的midlet。6.性能要求本章节包含了Java终端所应遵循的性能要求6.1Benchmark要求[需求编号]:TS-JAVA-PERF-BHMK-000145[分级]:基础级[需求描述]:JBenchmark要求[需求澄清]:JBenchmark2:41-image:32-text:157-sprites:65-3Dtransformation:7-userinterface:50总分必须达到标准要求,同时至少3个子项必须达到标准要求。[需求编号]:TS-JAVA-PERF-BHMK-000146[分级]:2级[需求描述]:JBenchmark要求[需求澄清]:JBenchmark2:182-image:150-text:300-sprites:200-3Dtransformation:15043 QB-╳╳-╳╳╳-╳╳╳╳-userinterface:150总分必须达到标准要求,同时至少3个子项必须达到标准要求。6.2启动时间要求[需求编号]:TS-JAVA-PERF-SPTM-000147[分级]:基础级[需求描述]:JVM/MIDlet启动时间[需求澄清]:这里定义的JVM/MIDlet启动时间指的是指用户通过按键启动一个MIDlet,到Java虚拟机显示midlet的第一个界面所需要的时间,本标准要求启动一个256K的MIDlet时间应小于等于2秒钟。如果midlet有启动动画的动作,则可以不用满足此要求。7.编制历史版本号更新时间主要内容或重大修改1.0.02002.71.0.0版本2.1.12003.121.ScaleImage中的NotSupportScaleReq异常更正为NotSupportScaleReqException2.定义了PhoneBook中常量的值。3.文字描述上的调整。3.0.02005-05-08规范书写形式进行调整,直接引用国际规范的地方不再详细描述细节4.0.02007-12-244.0.0版本以MSAsubset国际标准为基础,更新规范的内容,将中国移动对终端Java虚拟机的要求分为第一级要求和第二级要求4.1.02010-09-214.1.0版本根据MM需求及中低端集采需要增加并明确基础级要求43 QB-╳╳-╳╳╳-╳╳╳╳附录APIM支持的字段(基础级)表A-1PIM支持字段列表  ValueCMCCJAVA4.0CMCCPIM3.0 Remarkjavax.microedition.pim.Contact     public static final intADDR100OO public static final intADDR_COUNTRY6   public static final intADDR_EXTRA1   public static final intADDR_LOCALITY3   public static final intADDR_POBOX0   public static final intADDR_POSTALCODE5   public static final intADDR_REGION4   public static final intADDR_STREET2   public static final intATTR_ASST1   public static final intATTR_AUTO2   public static final intATTR_FAX4OO public static final intATTR_HOME8VV public static final intATTR_MOBILE16VV public static final intATTR_OTHER32   public static final intATTR_PAGER64   public static final intATTR_PREFERRED128  public static final intATTR_SMS256   public static final intATTR_WORK512VV  public static final intBIRTHDAY101O  O public static final intCLASS102   public static final intCLASS_CONFIDENTIAL200   public static final intCLASS_PRIVATE201   public static final intCLASS_PUBLIC202   public static final intEMAIL103OO public static final intFORMATTED_ADDR104   public static final intFORMATTED_NAME105  oneofFORMATTED_NAMEor43 QB-╳╳-╳╳╳-╳╳╳╳NAMEshallbesupportedpublic static final intNAME106VVoneofFORMATTED_NAMEorNAMEshallbesupportedpublic static final intNAME_FAMILY0  IfNAMEissupported,thenNAME_FAMILYandNAME_GIVENshallbesupportedpublic static final intNAME_GIVEN1  IfNAMEissupported,thenNAME_FAMILYandNAME_GIVENshallbesupportedpublic static final intNAME_OTHER2   public static final intNAME_PREFIX3   public static final intNAME_SUFFIX4   public static final intNICKNAME107   public static final intNOTE108  public static final intORG109O  O public static final intPHOTO110O O JustforTDpublic static final intPHOTO_URL111   public static final intPUBLIC_KEY112   public static final intPUBLIC_KEY_STRING113   public static final intREVISION114   public static final intTEL115O O public static final intTITLE116O  O public static final intUID117   public static final intURL118O O            43 QB-╳╳-╳╳╳-╳╳╳╳javax.microedition.pim.Eventpublic static final intALARM100  public static final intCLASS101   public static final intCLASS_CONFIDENTIAL200   public static final intCLASS_PRIVATE201   public static final intCLASS_PUBLIC202   public static final intEND102OO public static final intLOCATION103  public static final intNOTE104OO public static final intREVISION105 public static final intSTART106OO public static final intSUMMARY107OO public static final intUID108         javax.microedition.pim.ToDo     public static final intCLASS100   public static final intCLASS_CONFIDENTIAL200   public static final intCLASS_PRIVATE201   public static final intCLASS_PUBLIC202   public static final intCOMPLETED101OO public static final intCOMPLETION_DATE102OO public static final intDUE103OO public static final intNOTE104 public static final intPRIORITY105OO public static final intREVISION106 public static final intSUMMARY107OO public static final intUID108   注释:V——必选字段O——可选字段43 QB-╳╳-╳╳╳-╳╳╳╳附录AMMAPI的支持要求(基础级)下表给出所要求支持的媒体类型:表B-1MMAPI支持媒体类型列表所支持的多媒体类型说明SP-MIDIscalablepolyphonyMIDIFilenameextension:*.midMIMEtype:audio/sp-midiAMR-NBAMRfornarror-bandspeechFilenameextension:*.amrMIMEtype:audio/amrAACMPEG-2AAC(AdvancedAudioCoding)Filenameextension:*.aacMIMEtype:audio/aacAAC-LCismandatedtosupport,AAC+/AAC++arerecommended.MP3MPEGAudioLayerIII(MP3)Filenameextension:*.mp3MIMEtype:audio/mpegH.263ITU-TRecommendationH.263Profile0Level45codec,withassociatedaudiousingtheAMRcodec(4k、8k、12k)Filenameextension:*.3gpMIMEtype:video/3gppMPEG4MPEG-4VisualSimpleProfileLevel0codec,associatingwitheitherAMRorAAC-LCcodecFilenameextension:*.3gpor*.mp4MIMEtype:video/3gpp,video/mp4H.264H.264(AVC)BaselineProfileLevel1bdecoder[90][91]withconstraint_set1_flag=1andwithoutrequirementsonoutputtimingconformance(AnnexCof[90])Filenameextension:*.mp4MIMEtype:video/mp4GIF89aGIFanimation43 QB-╳╳-╳╳╳-╳╳╳╳下面两张表给出MMAPI支持的接口和播放器所需要的参数图例B-BasicA-AdvanceO-Optional表B-2MMAPI支持接口列表支持的接口SP-MIDIInteractive-MIDITONETONESequenceWAVAMR-NBAACMP3H.263(3GP)MPEG-4H.264GIF89aJPEGPlayerBABBBBBBAAOA VolumeControlBABBBBBBAAO  StopTimeControlAAAAAAAAAOA ToneControl BB     MIDIControlO      PitchControlOOO      RateControlOO AAAAAAO  TempoControlOO       RecordControl  B AAO  MetaDataControlBBBBBAOA GUIControl   AAOA FramePositioningControl   AAOA VideoControl   AAOA 表B-3MMAPI支持参数列表创建播放器所需要的参数(注一)SP-MIDIInteractive-MIDITONETONESequenceWAVAMR-NBAACMP3H.263(3GP)MPEG-4H.264GIF89aJPEGInputStream(buffered)(注二)B BBBBBBAAOA InputStream(streaming)(注三)    AAAA     “device://midi” A          "device://"  BB        "http://"(buffered)(注四)B BBBBBBAAOA "http://"(streaming)(注五    BBBBAAOA 43 QB-╳╳-╳╳╳-╳╳╳╳/六)"https://"B BBBBBBAAOA "file:///"B BBBBBBAAOA "rtsp://"    BBBAAOA "capture://"(snapshot)           B"capture://"(audio/videorecording)  A A   注一:当某一种媒体类型支持“InputStream(streaming)”,那么它不能同时支持“InputStream(buffered)”注二:终端实现在处理给定InputStream时,应缓存所有数据,然后开始播放缓存的数据。注三:终端实现在处理给定“InputStream”时,应能够使用有限的缓存来播放媒体内容注四:在处理DataSource的httpurl时,终端应缓存所有httpserver的数据,然后开始播放缓存的内容注五:在处理DataSource的httpurl时,终端应能够在有限的缓存支持下播放数据注六:当某一种媒体类型支持“http(streaming)”,那么它不能同时支持“http(buffered)”43 QB-╳╳-╳╳╳-╳╳╳╳附录A安全域策略(基础级)表C-1图例D(Denied):ApplicationcanneveruserespectivefunctionO(One-shot):PermissionrequiredeverytimeapplicationcallsfunctionS(Session):PermissionrequiredonceperusageperiodofapplicationB(Blanket):permissionrequiredonceduringinstallationoratfirstusageA(Allowed):nopermissionrequired-norestrictionsX(NoAccess):Donotgrantpermissiontothisfunctionduringthissession,donotaskagain表C-2安全域策略列表FunctionalityRemarksUntrustedThirdPartyTrustedCMCCTrustedNetworkAccess    javax.microedition.io.Connector.http O,S,XO,S,XAjavax.microedition.io.Connector.https O,S,XO,S,XAjavax.microedition.io.Connector.comm O,S,XO,S,XAjavax.microedition.io.Connector.ssl O,S,XO,S,XAjavax.microedition.io.Connector.datagram O,S,XO,S,XAjavax.microedition.io.Connector.datagramserverserver-modeDatagramDDAjavax.microedition.io.Connector.socket O,S,XO,S,XAjavax.microedition.io.Connector.serversocket DDAjavax.microedition.io.Connector.pushregistry O,S,XO,S,XA43 QB-╳╳-╳╳╳-╳╳╳╳PIM    javax.microedition.pim.PIM.contact.readonlycontactlistO,XO,S,XAjavax.microedition.pim.PIM.contact.readwritecontactlistO,XO,S,XAjavax.microedition.pim.PIM.event.readonlyeventlistO,XO,S,XAjavax.microedition.pim.PIM.event.readwriteeventlistO,XO,S,XAjavax.microedition.pim.PIM.todo.readonlytodolistO,XO,S,XAjavax.microedition.pim.PIM.todo.readwritetodolistO,XO,S,XAFile    javax.microedition.io.Connector.file.read O,XO,S,XAjavax.microedition.io.Connector.file.write O,XO,S,XAMessaging    javax.microedition.io.Connector.sms.sendSMSO,XO,S,XAjavax.microedition.io.Connector.sms.receiveSMSO,XO,S,XAjavax.microedition.io.Connector.mms.sendMMSO,XO,S,XAjavax.microedition.io.Connector.mms.receiveMMSO,XO,S,XASATSAforSIMCard    javax.microedition.apdu.sat XXAjavax.microedition.apdu.aid XXAjavax.microedition.jcrmi XXALocation    javax.microedition.location.Location O,S,XO,S,XAjavax.microedition.location.Orientation O,S,XO,S,XAjavax.microedition.location.ProximityListener O,S,XO,S,XAjavax.microedition.location.LandmarkStore.read O,S,XO,S,XAMMAPI    javax.microedition.media.control.RecordControl O,S,XO,S,XABluetooth    javax.microedition.io.Connector.btgoep O,S,XO,S,XA43 QB-╳╳-╳╳╳-╳╳╳╳附录AFileConnection支持目录(基础级)表D-1支持目录列表DirectoryLocatorSystemPropertyCMCC-DirectoryattributeinJADFileConnectionRealPathonTerminal(assumedCMCCrootis/usr/cmccfolder)Remarksfileconn.dir.musicMusicfile:///music/usr/cmcc/musicMusicClientservicefileconn.dir.mailMailfile:///mail/usr/cmcc/mailPushMailservicefileconn.dir.barcodeBarcodefile:///barcode/usr/cmcc/barcodeBarcodeRecognizationservicefileconn.dir.memory_cardn/afile:///memory_card/cmcc/sd_card(justforexample)ExternalStorageifavailable,suchasSDcard,MMCcard,…以上表格中,第一列所列属性通过java.lang.System.getProperty()返回值分别对应第三列的属性值。第三列的属性值通过(FileConnection)Connector.open()去访问其映射的实际路径。43 QB-╳╳-╳╳╳-╳╳╳╳附录AJAD的扩展属性表E-1扩展属性列表JAD属性描述最小支持字符数检查标准CMCC-Directory对于CMCC信任的应用程序,下面列出的JAD属性是专门用来管理该应用程序所需要的存储目录。CMCC-Directory:[directory_name]终端应该在“cmcc”目录下为每个中国移动信任的应用程序根据其JAD属性”CMCC-Directory”来创建其私有的目录,该私有目录应该在该应用运行前创建好。该私有目录只能通过file:///[directory_name]方式来访问。file:///[directory_name]具体参看附录“FileConnectionSupportedDirs“32a.字符的ascii值必须是在0x31~0x79CMCC-Keep-Background当外部时间发生时,终端实现通过该属性的值来确定是把java应用程序放入后台运行,还是中断java应用程序的执行如果该属性值没有被指定,缺省值为“no”CMCC-Keep-Background:[yes/no]16a.只能采用”yes”和”no”作为值b.在OTA下载安装过程中,如果应用程序发现该属性的值为非“yes”和“no”,那么,终端必须向服务器报告”906InvalidDescriptor”43 QB-╳╳-╳╳╳-╳╳╳╳PREFERRED-Con-Profile-TO-USE终端实现通过该属性来指定偏好的APN和java应用程序的相关配置来PREFERRED-Con-Profile-TO-USE:connetionprofilename64a.若无此属性或者属性值为空,Java实现将采用默认的数据连接配置。附录A事件对java虚拟机(VM)和midlet(App)运行状态的影响表F-1运行状态列表UntrustedMIDletThirdPartyTrustedMIDletCMCCorManufacturerTrustedMIDletCMCCorManufacturerTrustedMIDlet条件CMCC-Keep-Background:yesCMCC-Keep-Background:no电话拨入VM/AppSuspendedVM/AppSuspendedVM/AppbackgroundrunningVM/AppSuspended收到短信N/AN/AN/AN/A闹钟提醒VM/AppSuspendedVM/AppSuspendedVM/AppbackgroundrunningVM/AppSuspended收到彩信提醒N/AN/AN/AN/AplatformRequest启动电话呼叫VM/AppSuspendedVM/AppSuspendedVM/AppbackgroundrunningVM/AppSuspendedplatformRequest启动网络浏览器,本地邮件客户端VM/AppSuspendedVM/AppSuspendedVM/AppbackgroundrunningVM/AppSuspended43 QB-╳╳-╳╳╳-╳╳╳╳附录A中国移动特定API的规范ØPackagecom.cmcc.utilInterfaceSummaryVmStateListenerVmStateListener为程序提供了以异步方式接收VM产生的状态变化事件 ClassSummaryVmRuntime该类是对应用程序运行环境的一个抽象,每个Java应用程序都唯一对应该类的一个实例,该实例提供了应用程序与其运行的VM环境进行信息交互的功能com.cmcc.utilInterfaceVmStateListenerpublicinterfaceVmStateListenerVmStateListener为程序提供了以异步方式接收VM产生的状态变化事件。应用程序可以通过实现该接口,然后通过VmRuntime.setVmStateListener()方法把自己注册到VmRuntime中,从而获取事件的通知来自:CMCC4.0FieldSummarystatic java.lang.StringRUNNING_IN_BACKGROUND    当VM状态由Foerground转变成Background的时候,该事件被发送给VmStateListener。static java.lang.StringRUNNING_IN_FOREGROUND    当VM状态由Background转变成Foerground的时候,该事件被发送给VmStateListener。MethodSummary voidstateUpdate(java.lang.String event,java.lang.Object eventData)    VmStateListener注册成功后,当VM状态发生变化时,该方法被虚拟机调用,从而得到VM状态变化的通知。 43 QB-╳╳-╳╳╳-╳╳╳╳ FieldDetailüRUNNING_IN_BACKGROUNDpublicstaticfinaljava.lang.StringRUNNING_IN_BACKGROUND当VM状态由Foerground转变成Background的时候,该事件被发送给VmStateListener。PostedwhenVMstateischangedfromForegroundtoBackground.SeeAlso:ConstantFieldValuesüRUNNING_IN_FOREGROUNDpublicstaticfinaljava.lang.StringRUNNING_IN_FOREGROUND当VM状态由Background转变成Foerground的时候,该事件被发送给VmStateListener。PostedwhenVMstateischangedfromBackgroundtoForeground.SeeAlso:ConstantFieldValuesMethodDetailüstateUpdatepublicvoidstateUpdate(java.lang.String event,java.lang.Object eventData)VmStateListener注册成功后,当VM状态发生变化时,该方法被虚拟机调用,从而得到VM状态变化的通知参数值:event–指定所产生的事件类型,可以是RUNNING_IN_BACKGROUND或者RUNNING_IN_FOREGROUNDeventData–该事件所关联的数据对象com.cmcc.utilClassVmRuntimejava.lang.Objectcom.cmcc.util.VmRuntimepublicclassVmRuntimeextendsjava.lang.Object该类是对应用程序运行环境的一个抽象,每个Java应用程序都唯一对应该类的一个实例,该实例提供了应用程序与其运行的VM环境进行信息交互的功能。应用程序可以通过VmRuntime.getRuntime()来获取其对应的实例对象。来自:CMCC4.0FieldSummary43 QB-╳╳-╳╳╳-╳╳╳╳static intVM_STATE_BACKGROUND_RUNNING      该常量值表示当前VM在后台运行static intVM_STATE_FOREGROUND_RUNNING该常量值表示当前VM在前台运行   MethodSummarystatic VmRuntimegetRuntime()返回当前应用程序对应的VmRuntime的实例对象。 intgetState()获取当前VM的运行状态(前台/后台)  voidsetVmStateListener(VmStateListener stateListener)注册VmStateListener voidshowIndication(java.lang.String message,boolean requestForeground)当VM被切换到后台运行时,通过这个方法来给用户显示一个提示 Methodsinheritedfromclassjava.lang.Objectclone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait,wait FieldDetailüVM_STATE_FOREGROUND_RUNNINGpublicstaticfinalintVM_STATE_FOREGROUND_RUNNING该常量值表示当前VM在后台运行可参见:ConstantFieldValuesüVM_STATE_BACKGROUND_RUNNINGpublicstaticfinalintVM_STATE_BACKGROUND_RUNNING该常量值表示当前VM在前台运行可参见:ConstantFieldValuesMethodDetailügetRuntimepublicstaticfinalVmRuntimegetRuntime()43 QB-╳╳-╳╳╳-╳╳╳╳throwsjava.lang.SecurityException返回当前应用程序对应的VmRuntime的实例对象。ReturnstheVMruntimeobjectassociatedwiththecurrentJavaapplication.Returns:theVmRuntimeobjectassociatedwiththecurrentJavaapplication.Throws:java.lang.SecurityException-Thrownwhenapplicationisnotauthorizedtoaccess.üsetVmStateListenerpublicfinalvoidsetVmStateListener(VmStateListener stateListener)注册VmStateListenerSettheVmStateListenertomonitortheVMstatechanges.Parameters:stateListener-thevmstatelistenerügetStatepublicfinalintgetState()获取当前VM的运行状态(前台/后台)GetcurrentVMrunningstate(eitherforegroundrunningorbackgroundrunningstate).Returns:thevalueofcurrentVMrunningstate,possiblevalues:VM_STATE_FOREGROUND_RUNNINGandVM_STATE_BACKGROUND_RUNNING.üshowIndicationpublicfinalvoidshowIndication(java.lang.String message,boolean requestForeground)当VM被切换到后台运行时,通过这个方法来给用户显示一个提醒。当这个方法被调用时,终端应该把参数“message”的内容显示给用户。当用户确认后,终端应支持下面两种行为:l如果参数“requestForeground”是true,后台运行的应用程序,将被放到前台执行l如果参数“requestForeground”是false,后台运行的应用程序,将保持在后台运行Receive100messages OKReceive100messages43 QB-╳╳-╳╳╳-╳╳╳╳ [OK]SwitchtoApp该方法只有当VM在后台运行时才能有效果,如果当VM在前台运行时调用该方法,VM应忽略该调用。另外需要注意的是,当该函数调用返回时,后台运行的程序可能还没有被显示在前台,因为,用户可能在很长时间后才确认那个弹出提醒消息。此外,当该方法调用结束后,应用程序应使用VmStateListener来监听VM状态的变化。43'