WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术J2ME基础J2ME程序开发全方位基础讲解汇总

J2ME程序开发全方位基础讲解汇总
作者:ChinaITLab  来源:ChinaITLab  发布时间:2005-9-6 9:37:59
和真机实现不一致。例如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开始。
  你可以循环使用该方法向记录集中写入多条数据。
  
  2.2修改数据
  修改已经存在的记录集中指定id的数据,需要使用setRecord方法,示例代码:
  byte[] bytes = {1,2,3};
  rs. setRecord(1,bytes,0,bytes.length);
  
  以上代码的作用是将字节数组bytes的全部内容写入到id为1的记录集rs中。
  
  该操作会覆盖已有的数据。
  
  说明:有些时候,你需要将信息写入到记录集中的第

上一页  [1] [2] [3] [4] [5] [6]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码