我怎么能得到我的地理位置坐标?

时间:2014-01-22 14:12:00

标签: android location

这就是我获得纬度和经度的方法。

Criteria criteria = new Criteria();
            LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            String provider = locationManager.NETWORK_PROVIDER;
            Location location = locationManager.getLastKnownLocation(provider);
            if(location==null)
            {
            //do nothing    
            }else
            {
       double      longitude = location.getLongitude();
       double         latitude = location.getLatitude();
       saveCoordinates(location); // there goes another method

            }

这是权限列表 在我的设备上一切正常,但在其他设备(如平板电脑),这不会返回任何坐标.. 据我所知,它询问gps和网络坐标,这段代码不会返回任何内容。 但是当他们使用谷歌地图等其他应用时,他们的位置就会正确确定。

那么,我怎样才能获得坐标?

1 个答案:

答案 0 :(得分:1)

您必须要求新的位置。在else语句中添加以下内容

LocationListener ll = new mylocationlistener();
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);

这超出了你的功能。

private class mylocationlistener implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
        Log.d("LOCATION CHANGED", location.getLatitude() + "");
        Log.d("LOCATION CHANGED", location.getLongitude() + "");
        Toast.makeText(MainActivity.this,
            location.getLatitude() + "" + location.getLongitude(),
            Toast.LENGTH_LONG).show();
        }
    }
    @Override
    public void onProviderDisabled(String provider) {
    }
    @Override
    public void onProviderEnabled(String provider) {
    }
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    }

注意: -

您也可以随时向活动添加implements LocationListener,而不是创建新课程。那么你也将获得上述4功能。添加相同的代码。