Невозможно получить координаты местоположения при нажатии флажка в ежевике - PullRequest
0 голосов
/ 20 ноября 2011

Вот код, который я написал для получения координат местоположения:

final EditField ed3=new EditField("Lat is ","");
    add(ed3);
    final EditField ed4=new EditField("Lon is ","");
    add(ed4);
CheckboxField cbf=new CheckboxField("test it",false);
     add(cbf);
     cbf.setChangeListener(new  FieldChangeListener() {

        public void fieldChanged(Field field, int context) {
            // TODO Auto-generated method stub
        try {
            BlackBerryCriteria bc=new BlackBerryCriteria(GPSInfo.GPS_MODE_CELLSITE);
            LocationProvider lp3 = LocationProvider.getInstance(bc);
            Location loc = null;
            loc = lp3.getLocation(-1);
            if(loc != null)
            {
                QualifiedCoordinates qc=loc.getQualifiedCoordinates();
                double lat=qc.getLatitude();
                double lon=qc.getLongitude();
                ed3.setText(lat+"");
                ed4.setText(""+lon);
            }
            } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
    });

}

Но я не могу получить координаты.Оба поля редактирования остаются пустыми.В чем здесь проблема?Пожалуйста, помогите мне.Спасибо

1 Ответ

1 голос
/ 21 ноября 2011

Одна проблема заключается в том, что вы выполняете блокирующий вызов (getLocation (-1)) в потоке события (обслуживая событие измененного поля).

Это очень плохая практика на платформах BlackBerry.

Другая проблема может заключаться в том, поддерживает ли ваш поставщик услуг режим CELLSITE.

...