Android位置管理器getbestlocation返回null
问题描述:
我需要一些关于Android中的关于LocationManager
的信息/帮助。我使用此代码根据他的位置获取用户的特定信息,但在某些情况下,我得到provider=null
(我不确定何时,因为该例外已上传到我们的服务器,我无法再现它)。Android位置管理器getbestlocation返回null
下面是示例代码:
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(false);
crta.setBearingRequired(false);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(crta, true);
Log.d("","provider : "+provider);
// String provider = LocationManager.GPS_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(provider, 1000, 0, locationListener);
我怎么能当我的供应商为空,如果有一种方式来获得当前位置,并使用它?
在此先感谢!
答
试试这个代码并且不要忘记,你的供应商ATLEAST一个应该被启用
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(true);
crta.setBearingRequired(true);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(crta, true);
Log.d("","provider : "+provider);
// String provider = LocationManager.GPS_PROVIDER;
locationManager.requestLocationUpdates(provider, 1000, 0, locationListener);
Location location = locationManager.getLastKnownLocation(provider);
//updateWithNewLocation(location);
我不能看到,两行已经改变了自己的立场你的代码和mine..except之间的差异。 – 2012-04-11 12:11:35
它工作吗? – vipin 2012-04-11 12:12:26
它也在工作之前,但想法是如何防止提供程序为空...因为在某些情况下(我不知道哪些是因为我不能再现它们,它等于空)。 – 2012-04-11 12:22:21