我想使用GsmCellLocation
获取经度和纬度。我得到CID、LAC、MCC和MNC。但是当尝试使用获取经度和纬度时
urlString = "http://www.google.com/glm/mmap"
它给了我一个openHttpConnection
错误。我尝试过遵循许多教程,但都得到了相同的结果。这是我从另一个教程中获得long/lat的代码。
private Boolean RqsLocation(int cid, int lac) {
Boolean result = false;
String urlmmap = "http://www.google.com/glm/mmap";
try {
URL url = new URL(urlmmap);
URLConnection conn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setRequestMethod("POST");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.connect();
OutputStream outputStream = httpConn.getOutputStream();
WriteData(outputStream, cid, lac);
InputStream inputStream = httpConn.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
dataInputStream.readShort();
dataInputStream.readByte();
int code = dataInputStream.readInt();
if (code == 0) {
myLatitude = dataInputStream.readInt();
System.out.println("The lattitude value is " + myLatitude);
myLongitude = dataInputStream.readInt();
System.out.println("The lattitude value is " + myLongitude);
result = true;
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
我已在清单文件中授予权限。
这个问题以前问过,但我没有从他们中得到答案。
如果没有GPS,您也可以使用Network_Provider来获取纬度和经度。
LocationManager lm = (LocationManager) GlobalApplication
.getAppContext().getSystemService(Context.LOCATION_SERVICE);
Location location = lm
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if(location != null){
double latitude = location.getLatitude();
double longitude = location.getLongitude();
}