如何在没有gps的情况下在android中获取当前的经纬度



我想使用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();
}

最新更新