日期:2014-05-20  浏览次数:20641 次

j2me程序移植,不同的手机按键定义不同,有通用的解决方案吗??
真是麻烦,write once ,run once.

------解决方案--------------------

------解决方案--------------------
除了左右软键值,其它的基本可以靠getGameAction 来实现通用。 左右键很麻烦。 就Motorola特殊。
------解决方案--------------------
Motorola很讨厌吧,我记得Moto模拟器和实机的键值还不一样
------解决方案--------------------
根据平台自己做个映射吧。
------解决方案--------------------
可以的.可以自己写一个通用按键函数的...适用于任何机型.我就是这样做的.就是把所有条件全判断
------解决方案--------------------
尽量使用数字键盘吧,不要使用功能键盘了,毕竟很多手机的功能键盘都差异好大
------解决方案--------------------
不要想“write once ,run once.”这种了,在手机上不现实。

键值我们一般都是自定义的,在protected void keyPressed (int keyCode)里调用GetDeviceKey(keyCode)反回自定义的键值,这个GetDeviceKey函数:
private static int GetDeviceKey (int keyCode) {

switch (keyCode) {
case DKey.DEVICE_KEY_NUM1:
return DKey.NUM1;
。。。。。。
case DKey.DEVICE_SOFT_L:
return DKey.SOFT_R;
case DKey.DEVICE_SOFT_R:
return DKey.SOFT_L;

default:
return 0;
}
}
DKey.NUM1一直到DKey.SOFT_L都是自定义的值, DKey.DEVICE_xxx是不同机型的键值。这样换不同的机型都不用改变这里的代码,只要改变一下DKey这个接口中的DEVICE_XXX的值就行。

然后你可以写一个批处理,根据不同的机型修改DKey.DEVICE_xxx,然后分别打包。