J2ME之系统适配

转自:http://www.vipcn.com/InfoView/Article_243621.html

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 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;
        }
    }
}

 

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值