无法从Android获取位置信息

时间:2014-08-08 12:50:32

标签: android android-location

我试图获取我的设备的位置,但只有一次成功运行代码几次。以下是我使用的代码:

    final LocationListener mLocationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            Log.d(TAG, location.getLatitude() + ", " + location.getLongitude());
        }

        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {
            Log.d(TAG, "changed: " + s);
        }

        @Override
        public void onProviderEnabled(String s) {
            Log.d(TAG, "enabled: " + s);
        }

        @Override
        public void onProviderDisabled(String s) {
            Log.d(TAG, "disabled: " + s);
        }
    };

    LocationManager mLocationManager = (LocationManager) getActivity().getSystemService(getActivity().getApplicationContext().LOCATION_SERVICE);

    boolean enabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    Log.d(TAG, "gps enabled?" + enabled);
    Log.d(TAG, "network enabled?" +  mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER));

    Criteria criteria = new Criteria();
    best = mLocationManager.getBestProvider(criteria, true);

    Log.d(TAG, best);
    Log.d(TAG, LocationManager.GPS_PROVIDER);
    Log.d(TAG, LocationManager.NETWORK_PROVIDER);

    mLocationManager.requestLocationUpdates(best, 0, 0, mLocationListener);

我在室内(我希望在室内工作),所以我一直让best成为networkgps enablednetwork enabled字符串都打印出来true。是我不一致得到一个位置的原因,还是我可以采取一些措施来解决这个问题,以便我可以在室内找到一个位置?

1 个答案:

答案 0 :(得分:2)

因此,对于设备位置,使用融合提供程序可以获得更好的结果。

此外,您不需要管理不同的提供商。

Android developer documentation about location