public void getPosition(){
TelephonyManager telephonyManager = (TelephonyManager)activity.getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation gsmLocation = (GsmCellLocation)telephonyManager.getCellLocation();
int cellID = gsmLocation.getCid();
int LAC = gsmLocation.getLac();
String urlString = "http://www.google.com/glm/mmap";
URL url;
HttpURLConnection httpConn = null;
InputStream inputStream;
DataInputStream dataInputStream;
try {
url = new URL(urlString);
URLConnection conn = url.openConnection();
httpConn = (HttpURLConnection) conn;
httpConn.setRequestMethod("POST");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.connect();
OutputStream outputStream = httpConn.getOutputStream();
writeRequest(outputStream, cellID, LAC);
inputStream = httpConn.getInputStream();
dataInputStream = new DataInputStream(inputStream);
//---interpret the response obtained---
dataInputStream.readShort();
dataInputStream.readByte();
int code = dataInputStream.readInt();
Log.d("", "***code:"+code);
if (code == 0)
{
double lat = (double) dataInputStream.readInt() / 1000000D;
double lng = (double) dataInputStream.readInt() / 1000000D;
Log.d("", "***lat:"+lat+" lng"+lng);
dataInputStream.readInt();
dataInputStream.readInt();
dataInputStream.readUTF();
String uriString = "geo:" + lat + "," + lng;
// Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uriString));
//this.context.startActivity(intent);
Log.d("", "***subGPS true " + uriString);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void writeRequest(OutputStream outputStream, int cellID, int LAC) throws IOException {
DataOutputStream os = new DataOutputStream(outputStream);
os.writeShort(21);
os.writeLong(0);
os.writeUTF("fr");
os.writeUTF("Sony_Ericsson-K750");
os.writeUTF("1.3.1");
os.writeUTF("Web");
os.writeByte(27);
os.writeInt(0);
os.writeInt(0);
os.writeInt(3);
os.writeUTF("");
Log.d("", "***cellId" + cellID);
os.writeInt(cellID); // CELL-ID
// os.writeInt(20442); // CELL-ID
Log.d("", "***LAC" + LAC);
os.writeInt(LAC); // LAC
// os.writeInt(6015); // LAC
os.writeInt(0);
os.writeInt(0);
os.writeInt(0);
os.writeInt(0);
os.flush();
}