-2
我使用下面的代码来获取使用android的位置坐标。现在我想在黑莓中实现相同的功能。但是我发现许多类都不在黑莓手机中。任何人都可以为我提供这个程序中使用的类的替代品。我在Blackberry中使用了Criteria类,它可以获得坐标。但它适用于移动版,只在版本4.7.1之上,如Here所述。所以我发现这个代码在android中帮助,我想在blackBerry中实现这个。谢谢如何在黑莓中实现此代码
public class GeoLocationActivity extends Activity {
GsmCellLocation location;
int cellID, lac;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
location = (GsmCellLocation) tm.getCellLocation();
Button btnDisplayMap = (Button) findViewById(R.id.displayMap);
btnDisplayMap.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
//---obtain the CellID and LAC of the device---
CellLocation.requestLocationUpdate();
cellID = location.getCid();
lac = location.getLac();
try {
if (!displayMap(cellID, lac))
{
TextView t = (TextView) findViewById(R.id.status);
t.setText("Location not found!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private boolean displayMap(int cellID, int lac) throws Exception
{
String urlString = "http://www.google.com/glm/mmap";
//---open a connection to Google Maps API---
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setRequestMethod("POST");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.connect();
//---write some custom data to Google Maps API---
OutputStream outputStream = httpConn.getOutputStream();
WriteData(outputStream, cellID, lac);
//---get the response---
InputStream inputStream = httpConn.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
//---interpret the response obtained---
dataInputStream.readShort();
dataInputStream.readByte();
int code = dataInputStream.readInt();
if (code == 0) {
double lat = (double) dataInputStream.readInt()/1000000D;
double lng = (double) dataInputStream.readInt()/1000000D;
dataInputStream.readInt();
dataInputStream.readInt();
dataInputStream.readUTF();
EditText et= (EditText)findViewById(R.id.lat);
et.setText(lat+"");
EditText et2= (EditText)findViewById(R.id.lon);
et2.setText(lng+"");
return true;
}
else
{
return false;
}
}
private void WriteData(OutputStream out, int cellID, int lac)
throws IOException
{
DataOutputStream dataOutputStream = new DataOutputStream(out);
dataOutputStream.writeShort(21);
dataOutputStream.writeLong(0);
dataOutputStream.writeUTF("en");
dataOutputStream.writeUTF("Android");
dataOutputStream.writeUTF("1.0");
dataOutputStream.writeUTF("Web");
dataOutputStream.writeByte(27);
dataOutputStream.writeInt(0);
dataOutputStream.writeInt(0);
dataOutputStream.writeInt(3);
dataOutputStream.writeUTF("");
dataOutputStream.writeInt(cellID);
dataOutputStream.writeInt(lac);
dataOutputStream.writeInt(0);
dataOutputStream.writeInt(0);
dataOutputStream.writeInt(0);
dataOutputStream.writeInt(0);
dataOutputStream.flush();
}
}
一些数量的班黑莓不支持。 所以最好的方法是使用另一个代码来查找位置。 谢谢.......... –
看看[this](http://docs.blackberry.com/en/developers/deliverables/1181/GPS%20and%20BlackBerry%20Maps%20Development%20Guide .pdf)文件。解释如何在BB中使用位置服务 – jprofitt
Blackberry对您的要求是什么?你想要经纬度还是根据Lat和Long显示地图? – alishaik786