位置管理器未正确获取GPS位置

时间:2011-05-16 10:05:53

标签: android

我应该获取用户的当前位置,为此我实现了以下代码:

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);

这是我的LocationListener类:

 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() + "");
            lat = location.getLatitude();
            lng = location.getLongitude();
            Toast.makeText(NearActivity.this, "lng=" + lng + " lat=" + lat,
                    Toast.LENGTH_SHORT);
            showProgress();
        }
    }

上面的代码没有设置变量lat和lng,它们是全局变量。为什么GPS无法提供坐标?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

Location是一个包含位置属性的类。它与GPS提供商不同。这是您从GPS提供商处获取当前位置的方法。

lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLoc = m.getLastKnownLocation(LocationManager.GPS_PROVIDER);

答案 1 :(得分:0)

您是否设置了权限?

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET"/>