无法在Android手机上获取该位置

时间:2012-03-13 14:48:34

标签: android mobile locationmanager android-location

其实我的问题有时候我可以获得位置,有时我无法获得Android真实设备上的位置。我使用以下代码获取位置,

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);

我需要在应用程序启动时获取位置。我不知道为什么有时会失败。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

@jsmith 评论了我的问题,

  

提高您的电源要求,并确保您可以在哪里进行测试   获得网络或GPS信号。如果这有帮助,那么它只是一个例子   传感器接收不足以了解位置。

这是我的问题的正确答案。现在它的工作正常。

答案 1 :(得分:0)

您忘记申请“位置更新”,在声明LocationManager后使用此功能:

locationManager.requestLocationUpdates(provider, 0, 0, this);

然后你必须让类实现LocationListener然后添加这个函数:

public void onLocationChanged(Location location) {
//get the location here
}

如果您不想重复获取该位置,在获得该位置后,您必须以这种方式停止“位置更新”:

locationManager.removeUpdates(this);

如果您希望应用程序始终收听“位置更新”,则最好在onResume()中请求更新并删除onPause()中的更新。 onDestroy()

祝你好运