1,混淆时堆栈溢出的解决办法(jre1.5适用,其他没试过):

 

window-preferences-java-installed jres-edit把 default vm arguments设为:-xss1024k

 

2,如何使defaultcolorphone变成触摸屏?

 

用记事本打开c:/wtk25/wtklib/devices/defaultcolorphone/defaultcolorphone.properties,将里面的touch_screen=false改成true

 

3,四级灰度的颜色值怎么表示?
private final static int white_color = 0x00ffffff;
private final static int light_gray = 0x00888888;
private final static int dark_gray = 0x00444444;
private final static int black_color = 0x00000000;

 

4,如何读取手机的imei  ?

 

一般手机按"*#06#"就可得到imei码,每个手机是唯一的。

 

moto系列的可以通过读取系统的imei属性获得
    string imei = system.getproperty("imei");
   

 

 siemens系列的可以通过读取系统的com.siemens.imei属性获得
    string imei = system.getproperty("com.siemens.imei");

 

 nokia
    string imei = system.getproperty("com.nokia.mid.imei");
注:不是所有都能读取到

 

5,j2me中文问题的解决方案

 

public string readfromfile(string filename)
    {
        string returnstring = null;
        inputstream is = getclass().getresourceasstream(filename);
        if (is != null)
        {
            bytearrayoutputstream baos = new bytearrayoutputstream();
            int ch = 0;
            try
            {
                while ((ch = is.read()) != -1)
                {
                    baos.write(ch);
                }
                byte[] data = baos.tobytearray();
                returnstring = new string(data, "utf-8");
                is.close();
                baos.close();
            } catch (ioexception e)
            {
                e.printstacktrace();
            }
        }
        return returnstring;
    }

6,如何高效地判断奇数和偶数?

 

一般的处理做法是用这个整数和2取模。然后判断是等于1还是等于0。

 

大家都知道,奇数的最低位一定是1,而偶数的最低位一定是0.所以我们可以根据这个特性,让需要判定的整数和1进行“与”运算,这样就只留下了原数的最低位,然后直接判断这个数等于1还是等于0即可。

 

/*
    /// 判断一个整数是奇数还是偶数。
   * /
        static public bool iseven(int a)
        {
            if ((a & 1) == 0)
            {
                return true;
            }
            else
            {
                return false;
            }           
        }
       static public bool isodd(int a)
        {
           return !iseven(a);
        }
    }

7,在j2me网络编程中使用cmwap代理

 

在中国移动提供的网络连接中,分为cmnet和cmwap两种,其中cmnet可以无限制的访问互联网络,资费比较贵。cmwap类似一个http的代码,只能访问支持http的应用,但是资费便宜,稳定性比较差。
  在实际的j2me网络编程中,一般需要提供以cmwap代理的方式连接网络,在j2me中,连接的代码和直接连接有所不同,代码如下:
        

c= (httpconnection)connector.open("http://10.0.0.172:80/1.png,connector.read,true);
c.setrequestproperty("x-online-host", "211.136.87.234");
c.setrequestproperty("accept", "*/*");
is = c.openinputstream();

10.0.0.172是移动的cmwap网关。

 

8,在j2me联网应用中获得客户端的手机号码

 

在j2me程序开发过程中,为了一定的需要,经常需要来获得用户的手机号码,但是这个功能却在标准的j2me类库中没有提供。
  在使用中国移动的cmwap方式连接网络时,中国移动会将用户的手机号码放在一个名称为x-up-calling-line-id的头信息中,可以通过读取该头信息,获得用户的手机号码,具体代码如下:
         string usermphone = http.getheader("x-up-calling-line-id");
  其中http是httpconnction类型的对象。

 

9,sonyericssonwtk不能正常显示中文的问题

 

sun发布的wtk模拟器是支持中文的,但是sprint和sonyericsson提供的sdk不支持中文,但是他们有一个共同的特点就是基于wtk,因此让他们支持中文也并不复杂。只要按照下面的方式即可。

 

将c:/sonyericsson/j2me_sdk/pc_emulation/wtk2/wtklib/devices/sonyericsson_k750.properties文件中的font部分用以下部分代替:
font.default=宋体-plain-12
font.softbutton=宋体-plain-12 
font.system.plain.small: 宋体-plain-12
font.system.plain.medium: 宋体-plain-12
font.system.plain.large: 宋体-plain-12 
font.system.bold.small: 宋体-bold-12
font.system.bold.medium: 宋体-bold-12
font.system.bold.large: 宋体-bold-14 
font.system.italic.small: 宋体-italic-12
font.system.italic.medium: 宋体-italic-12
font.system.italic.large: 宋体-italic-14 
font.system.bold.italic.small: 宋体-bolditalic-12
font.system.bold.italic.medium: 宋体-bolditalic-12
font.system.bold.italic.large: 宋体-bolditalic-14 
font.monospace.plain.small: 宋体-plain-12
font.monospace.plain.medium: 宋体-plain-12
font.monospace.plain.large: 宋体-plain-14 
font.monospace.bold.small: 宋体-bold-12
font.monospace.bold.medium: 宋体-bold-12
font.monospace.bold.large: 宋体-bold-14 
font.monospace.italic.small: 宋体-italic-12
font.monospace.italic.medium: 宋体-italic-12
font.monospace.italic.large: 宋体-italic-14 
font.monospace.bold.italic.small: 宋体-bolditalic-12
font.monospace.bold.italic.medium: 宋体-bolditalic-12
font.monospace.bold.italic.large: 宋体-bolditalic-14 
font.proportional.plain.small: 宋体-plain-12
font.proportional.plain.medium: 宋体-plain-12
font.proportional.plain.large: 宋体-plain-14 
font.proportional.bold.small: 宋体-bold-12
font.proportional.bold.medium: 宋体-bold-12
font.proportional.bold.large: 宋体-bold-14 
font.proportional.italic.small: 宋体-italic-12
font.proportional.italic.medium: 宋体-italic-12
font.proportional.italic.large: 宋体-italic-14 
font.proportional.bold.italic.small: 宋体-bolditalic-12
font.proportional.bold.italic.medium: 宋体-bolditalic-12
font.proportional.bold.italic.large: 宋体-bolditalic-14

 

其中“宋体”——要显示的字体  “plain”——显示的效果  “12”显示的大小
字体可以换成任何系统中找的到的字体。

 

还有一种方法也可以解决此问题——把"c:/sonyericsson/javame_sdk_cldc/pc_emulation/wtk2/wtklib/devices/fonts"文件夹删除即可.

 

10,motorola v系列的j2me的图标显示

 

motorola的v系列手机j2me程序图标大小必须是15*15的大小.而且必须在midlet-icon中填出图标名字.不能只在midlet-1中填写.nokia的手机的确只填写这里就可以了.