手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

J2ME程序开发全方位基础讲解汇总

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  每个厂商的扩展API都不多,而且不尽相同。
  3、如何使用?
  有些厂商SDK的使用都和WTK相同,例如SamSung。
  Nokia提供了独立的界面来开发,但是这个界面在实际开发中使用不多。
  4、厂商SDK的问题
  厂商SDK实现过程中,有一些bug,而且和真机实现不一致。例如NOKIA的混音播放问题等等。

  八、在J2ME中获得手机IMEI的方法

  IMEI是Internation mobile entity identification的简称,在手机中输入*#06#可以显示该数字,长度为15位,全球唯一,永远不会冲突,所以可以作为识别用户的一个标志。
  下面是在J2ME中获得IMEI的方法:
  1、MOTO系列的手机可以通过读取系统的IMEI属性获得,代码如下:
   String imei = System.getProperty("IMEI");
  2、SIEMENS系列的手机可以通过读取系统的com.siemens.IMEI属性获得,代码如下:
   String imei = System.getProperty("com.siemens.IMEI");

  九、J2ME网络连接中显示问题的解决办法

  在网络编程中,有些时候会出现一些在没有接收到网络数据就显示界面的,造成界面显示不符合要求(例如公告显示,会先显示公告的背景图片再显示公告信息),这里提一个简单的解决办法给大家:
  解决这种情况的方法分成三个步骤:
  1、在需要显示的界面中,调用发送网络数据的方法。每次显示时调用该构造方法,不调用Display的setCurrent方法显示。
  2、显示等待界面(例如进度条等),给用户提示,在进行网络连接。
  3、在处理网络反馈的数据完以后,调用Display的setCurrent方法显示显示当前界面。

  十、增强J2ME的String能力——分割字符串

  从JDK1.4以后,String类中新增了split方法来实现字符串的分割,但是在J2ME中却没有该方法(MIDP2.0中也没有实现),但是在实际使用过程中,有些时候的确要用到这种操作,这里将我以前实现的一段代码和大家共享:
/**
* 分割字符串,原理:检测字符串中的分割字符串,然后取子串
* @param original 需要分割的字符串
* @paran regex 分割字符串
* @return 分割后生成的字符串数组
*/

private static String[] split(String original,String regex)
{
//取子串的起始位置
int startIndex = 0;
//将结果数据先放入Vector中
Vector v = new Vector();
//返回的结果字符串数组
String[] str = null;
//存储取子串时起始位置
int index = 0;

//获得匹配子串的位置
startIndex = original.indexOf(regex);
//System.out.println("0" startIndex);
//如果起始字符串的位置小于字符串的长度,则证明没有取到字符串末尾。
//-1代表取到了末尾
while(startIndex < original.length() && startIndex != -1)
{
String temp = original.substring(index,startIndex);
System.out.println(" " startIndex);
//取子串
v.addElement(temp);

//设置取子串的起始位置
index = startIndex regex.length();

//获得匹配子串的位置
startIndex = original.indexOf(regex,startIndex regex.length());
}

//取结束的子串
v.addElement(original.substring(index 1 - regex.length()));
//将Vector对象转换成数组
str = new String[v.size()];
for(int i=0;i
{
str[i] = (String)v.elementAt(i);
}

//返回生成的数组
return str;
}

  十一、J2ME在低级用户界面上分行显示文字

  在J2ME的低级用户界面开发中,经常会遇到需要在Canvas上显示大量的文字,例如关于界面、游戏说明、游戏公告等信息。如果在设计时,将文字的内容和长度都固定,既不利于修改也不利于维护。下面介绍一个简单的方法,实现一个简单、可维护性强的方式。
  实现方法:
   1、将需要显示的所有信息做成一个字符串。
   2、编写一个将该字符串按照要求转换为字符串数组的方法。
   3、将转换后的数组以循环的方式显示在Canvas上。
  通过这样三个步骤,则修改显示的信息时,只需要修改包含显示信息的字符串即可,自己书写的方法可以按照以前的标准重新分割新的字符串。如果需要修改每行显示的字符个数,则只需要修改自己书写的方法即可。
  通过这样一种实现方式,可以很方便的实现显示一些比较长的文本信息,即使是可变长度的字符串也没有问题。

  十二、J2ME中使用记录存储系统(RMS)存储信息

  在MIDP中,没有文件的概念,所以永久存储一般只能依靠记录存储系统实现,关于记录存储系统的简介,可以参看教程:http://www-900.ibm.com/developerWorks/cn/java/j-wi-rms/index.shtml
  下面是一些记录存储系统的常用编码介绍:
   1、打开记录集:
  打开记录集使用RecordStore里面的静态方法openRecordStore,示例代码如下:
RecordStore rs = RecordStore.openRecordStore(“username”,true);
  这样就打开了一个名称为rs的记录集,其中username为记录集的名称,该名称可以根据需要来取,第二个参数代表是否则没有时创建新的记录集,true代表在该记录集不存在时,创建新的记录集,false代表不创建。
  如果在打开记录集时,该记录集不存在,则抛出RecordStoreNotFoundException异常,所以检测记录集是否已创建可以使用该异常。
  注意:记录集打开以后记得关闭。
   2、向记录集中写入数据
   2.1增加数据
  向已经打开的记录集中添加数据,需要使用addRecord方法,示例代码:
byte[] bytes = {1,2,3};
   int id = rs. addRecord(bytes,0,bytes.length);
  该代码将字节数组bytes的全部内容写入到记录集中,该方法的返回值为该信息的id,注意:id从1开始,而不是从0开始。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!