以下是我为检索位置协调员而编写的代码:
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();
}
}
});
}
但我无法检索坐标。两个编辑字段都留空。这里有什么问题?请帮帮我。谢谢
答案 0 :(得分:1)
一个问题是您正在事件线程上进行阻塞调用(getLocation(-1))(为字段更改事件提供服务)。
这在BlackBerry平台上非常糟糕。
另一个问题可能是您的服务提供商是否支持CELLSITE模式。