Usually we use final String currentPlatform = System.getProperty("microedition.platform"); to check cellphone's platform and then check keycodes,but some cellphone's return ' currentPlatform' not very right,so the method below maybe simple:

    private static int idxleft = -125;

   private static int idxright = -125;

    private static int getLeftkey(Canvas canvas) {
        try{
            for (int i = idxleft; i <= 125; i++) {
                if (i == 0) {
                    i++;
                }
                final String s = canvas.getKeyName(i).toUpperCase();
               
                if ( s.indexOf(SOFT_WORD) >= 0) {
                    if ( s.indexOf("1") >= 0) { return i; }
                    if ( s.indexOf("LEFT") >= 0) { return i; }
                }
            }
        }
        catch (IllegalArgumentException e) {
            idxleft++;
            return getLeftkey(canvas);
        }
        return SOFT_KEY_LEFT_NOKIA;
    }
   
    private static int getRightkey(Canvas canvas) {
        try{
            for (int i = idxright; i <= 125; i++) {
                if (i == 0) {
                    i++;
                }
                final String s = canvas.getKeyName(i).toUpperCase();
                if ( s.indexOf(SOFT_WORD) >= 0) {
                    if ( s.indexOf("2") >= 0) { return i; }
                    if ( s.indexOf("RIGHT") >= 0) { return i; }
                }
            }
        }
        catch (IllegalArgumentException e) {
            idxright++;
            return getRightkey(canvas);
        }
        return SOFT_KEY_RIGHT_NOKIA;
    }