2

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

我已经在启用 GPS 和 NETWORK 的三种不同设备(Galaxy S3、Galaxy Note 2、Google Nexus 4)上进行了测试。

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");
            }
        });
4

1 回答 1

-1

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

此外,您不应该指定提供程序名称LocationManager.GPS_PROVIDER,因为用户可能在他的设备上禁用了他的 gps。LocationManager提供了一个方法getBestProvider(),你应该调用这个方法来获得最好的可用提供者。

于 2013-05-16T22:20:48.663 回答