LocationListener从未调用过

时间:2013-05-16 21:15:02

标签: android android-location

我正在尝试调试我的应用程序,出于某种原因,当我开始获取当前位置时,我永远不会获得对LocationListener的更新...我已在清单中添加了正确的权限。这是我用来测试是否至少调用一个回调的示例代码片段:

我已经测试了三种不同的设备(Galaxy S3,Galaxy Note 2,Google Nexus 4),这些设备都配备了GPS&网络已启用。

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
                MyLog.debug("FOO");
            }

            @Override
            public void onProviderEnabled(String provider) {
                MyLog.debug("FOO");
            }

            @Override
            public void onProviderDisabled(String provider) {
                MyLog.debug("FOO");
            }

            @Override
            public void onLocationChanged(Location location) {
                MyLog.debug("FOO");
            }
        });

1 个答案:

答案 0 :(得分:-1)

检查您是否在清单中添加了正确的权限(ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION)。

此外,您不应指定提供商名称,例如LocationManager.GPS_PROVIDER,因为用户可能已在其设备上禁用了他的gps。 LocationManager提供了方法getBestProvider(),您应该调用此方法以获得最佳可用提供商。