作者:asklxf 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=963
获取设备支持的可选API
J2ME规范包括了许多可选包,如支持多媒体功能的MMAPI,支持消息接收和发送的WMA,支持3D游戏的M3G API。如果某一款手机支持某个可选API,MIDP应用程序就可以使用它。但是,让用户回答“本机是否支持MMAPI”是不友好的,发布几个不同版本不但增加了开发的工作量,也让用户难以选择。因此,应用程序应该自己检测手机是否支持某一API,从而在运行期决定是否可以使用此API。
MIDP 1.0和2.0应用程序都可以通过System.getProperty(String key)检测某一个属性的信息。如果该属性有效,将返回对应的字符串,否则,返回null,表示系统不支持此功能。
例如,System.getProperty("microedition.profiles")可能的返回值是"MIDP-1.0"或"MIDP-2.0"。
以下是常见的系统属性和可选API的属性,右侧列出了可能的返回值:
系统信息 |
|
microedition.platform |
平台名称,如j2me |
microedition.configuration |
CLDC或CDC版本,如CLDC-1.0 |
microedition.profiles |
MIDP版本,如MIDP-1.0 |
microedition.encoding |
默认的系统编码,如GBK |
microedition.locale |
默认的区域设置,如zh-CN |
MMAPI相关 |
|
microedition.media.version |
MMAPI的版本,如1.1 |
supports.mixing |
是否支持混音,如true |
supports.audio.capture |
是否支持音频捕获,如true |
supports.video.capture |
是否支持视频捕获,如true |
supports.recording |
是否支持录音,如true |
audio.encodings |
音频编码格式,如encoding=pcm encoding=pcm&rate=8000&bits=8&channels=1 |
video.snapshot.encodings |
拍摄图片的编码格式,如encoding=jpeg encoding=png |
streamable.contents |
支持的流媒体格式,如audio/x-wav |
WMA相关 |
|
wireless.messaging.sms.smsc |
返回SMS的服务中心,如+8613800010000 |
wireless.messaging.mms.mmsc |
返回MMS的服务中心,如http://mmsc.monternet.com |
其他 |
|
microedition.m<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="g" w:st="on"></chmetcnv>3g.version |
返回Mobile 3D的版本,如1.0 |
bluetooth.api.version |
返回蓝牙API的版本,如1.0 |
microedition.io.file.FileConnection.version |
返回FileConnection的版本,如1.0 |
microedition.pim.version |
返回PIM的版本,如1.0 |
例如,如果用户的手机内置了数码相机,并且支持MMAPI,我们就可以在MIDP程序中拍摄照片。因此,在应用程序启动时就应该判断是否启用拍照功能以及用户手机支持的图片编码格式:
boolean supports_take_photo = false;
boolean supports_jpeg_encoding = false;
boolean supports_png_encoding = false;
boolean supports_gif_encoding = false;
if(System.getProperty("microedition.media.version")!=null) {
if("true".equals(System.getProperty("supports.video.capture")))
supports_take_photo = true;
String all_encoding = System.getProperty("video.snapshot.encodings");
if(all_encoding!=null) {
if(all_encoding.indexOf("jpeg")!=(-1))
supports_jpeg_encoding = true;
if(all_encoding.indexOf("png")!=(-1))
supports_png_encoding = true;
if(all_encoding.indexOf("gif")!=(-1))
supports_gif_encoding = true;
}
}
}
分享到:
相关推荐
"J2ME开发.pdf"可能包含J2ME的详细教程或者最佳实践,涵盖从基础语法到高级特性的讲解,包括UI设计(如Form和Canvas类)、数据持久化(RecordStore)、网络编程(HttpConnection和Socket)以及事件处理等。...
通过郭克华老师的J2ME课件与代码,学习者不仅可以掌握J2ME的基本概念和技术,还能了解到实际开发中的最佳实践,为开发自己的J2ME应用程序打下坚实基础。同时,配合视频教程,可以让学习更加直观和高效,帮助开发者...
【描述】中提到的“J2ME游戏移植Android文档”很可能包含了一系列步骤和最佳实践,指导开发者如何有效地进行移植工作。这个过程通常包括理解J2ME和Android之间的差异,识别和解决兼容性问题,以及利用特定工具和库来...
这对于初学者来说是一份宝贵的实践教程,可以深入理解J2ME平台的游戏编程技巧和最佳实践。 总结来说,这个RPG游戏Demo是J2ME技术在游戏开发领域的实际应用,涵盖了基础的游戏机制和移动平台的适配策略。通过对这个...
深入研究“j2me polish v212源码”,开发者不仅可以学习到J2ME应用开发的最佳实践,还能掌握跨平台移动应用的构建策略,对于提升个人技能和解决实际开发问题具有极大的价值。此外,通过阅读和理解源码,还可以为社区...
通过阅读和分析这些代码,你可以学习到实际项目中的最佳实践和技术细节。 学习并熟练掌握这些知识点,你将能够开发出适用于各种J2ME设备的应用程序,无论是实用工具还是娱乐游戏,都能游刃有余。同时,随着移动技术...
#### J2ME的设计模式与最佳实践 - **MVC架构**:采用模型-视图-控制器的设计模式,分离数据、展示逻辑和控制逻辑。 - **远程数据存储**:利用Record Management System (RMS)进行数据持久化。 - **统一用户界面**:...
通过研究这本书的随书源码,开发者不仅可以学习到J2ME3D游戏开发的基本概念和技术,还能掌握实际项目中的最佳实践,提升自己的编程能力。这些知识点对于想要进入移动游戏开发领域的程序员来说,是一份宝贵的资源。
**J2ME移动应用开发讲义...这本讲义将详细介绍以上概念,并可能包括实例演示、最佳实践和常见问题解答,为J2ME开发者提供了一个宝贵的参考资料。通过学习和实践,开发者可以掌握创建引人入胜且跨平台的移动应用的技能。
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要设计...同时,理解源码中的设计模式和最佳实践,也有助于培养良好的编程习惯。在实践中,开发者应注重代码的可读性和可维护性,以便于未来的学习和扩展。
- **最佳实践**:分享如何优化性能,以及在实际项目开发中的一些技巧和经验。 - **源码分析**:通过分析开源代码,帮助读者更好地理解和自定义J2ME Polish。 - **案例研究**:提供实际应用示例,展示如何将J2ME ...
Java 2 Micro Edition(J2ME)是一种针对嵌入式设备和移动平台的Java应用程序开发框架。这个压缩包“j2me开发程序源代码”包含了若干个与J2ME...同时,这也可以帮助开发者了解J2ME编程的最佳实践,提升解决问题的能力。
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专门用于...同时,源代码实例有助于理解理论知识的实际应用,对于初学者来说是极好的学习资源,对于经验丰富的开发者也有助于探索新的设计模式和最佳实践。
9. **最佳实践**:分享开发J2ME应用时的优化策略、性能调优技巧以及避免常见错误的方法。 此外,压缩包中的"ziliaonet.com使用说明.txt"和"ebook168.com使用说明.txt"可能是网站的使用指南,可能包含了获取电子书...
**J2ME手机开发程序源代码详解** J2ME(Java 2 Micro Edition)是Java平台的一个子集,专门用于嵌入式设备和移动设备的...通过深入研究这些代码,开发者不仅可以加深对J2ME的理解,还能学习到实际项目中的最佳实践。
通过深入研究这个J2ME视频播放器的源代码,开发者不仅可以学习到如何在J2ME环境下实现视频播放,还可以了解到许多与移动开发相关的最佳实践和技术。这包括如何在有限的内存和CPU资源下进行高效编程,以及如何处理跨...
通过阅读《J2ME in a Nutshell》,开发者可以全面了解J2ME生态系统,掌握开发移动应用的关键技术和最佳实践,从而在Java的微型世界中游刃有余。书中的深入讲解和实用示例将帮助读者从新手迅速成长为经验丰富的J2ME...
19. **最佳实践**:总结开发J2ME游戏的经验和技巧,提供进一步学习的建议。 通过这些章节的学习,初学者可以全面了解J2ME游戏开发的全过程,从概念到实践,从简单的2D游戏到复杂的交互式应用。同时,提供的源文件可...
文章中提到了使用`system.gc()`来手动触发垃圾回收,但这并不是最佳实践,因为频繁调用垃圾回收会显著降低游戏性能。 3. **输入事件处理** 不同于PC或主机游戏,移动设备上的输入方式较为有限。在J2ME平台上,...
它在J2SE(Java 2 Standard Edition)和J2EE(Java 2 Enterprise Edition)的基础上,专注于为移动设备和嵌入式系统提供最佳的编程解决方案。J2ME的出现极大地推动了无线应用的发展,特别是手机游戏领域。 在J2ME中...