我还能如何获得地理位置坐标



这就是我获得纬度和延长的方式。

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和网络坐标,此代码不会返回任何内容。但是,当他们使用其他应用程序(例如Google Maps)时,它们的位置已正确确定。

那么,我还能如何获得坐标?

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

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个功能。向他们添加相同的代码。

最新更新