我有一个奇怪的问题,花了很多分钟,现在试图找出这一点。对于Android Market中的我的NFC Checkin应用程序,我正在访问用户的位置以进行Foursquare搜索。Android LocationListener.onLocationChanged从来没有叫
所以,这里的大概我做什么(类似的代码已经工作过 - 对AA的Galaxy Nexus,但现在我仍然在Android 4.0.2):
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_MEDIUM);
String providerName = locationManager.getBestProvider(criteria, true);
Location loc = locationManager.getLastKnownLocation(providerName);
showSearchUI();
if (loc.getTime() > (new Date().getTime() - 1000*2*60)) //2Minutes back
{
Log.d("demo", "LastKnownLocation is good enough, using this location!");
startVenueSearch(loc);
}
else
{
Log.d("demo", "Requesting network location updates...");
locationManager.requestLocationUpdates(providerName, 0, 0, this);
}
活动实现了LocationListener的接口,所以这里是onLocationChanged方法:
@Override
public void onLocationChanged(Location location) {
locationManager.removeUpdates(this);
Log.d("demo", "Got fresh location, beginning... " + location.getLatitude() + "/" + location.getLongitude());
//fake hybris
//location.setLatitude(48.150098d);
//location.setLongitude(11.546026d);
startVenueSearch(location);
}
问题:我只是得不到位置更新。我只是绕过代码,将代码从直接调用NetworkProvider改为基于标准的搜索提供程序,但它仍然不起作用。任何人?
您是否找到解决方案? – 4gus71n 2013-11-22 13:36:29