我正试图实现一个应用程序,它可以从GPS和网络提供商处感知位置,并在Google地图上显示它。我成功地做到了这一点,但我有一个问题: 我得到的供应商在我的活动的OnCreate()(它扩展了LocationListener的)Android。如何知道检测到的位置是来自GPS还是网络提供商
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
location = locationManager.getLastKnownLocation(provider);
它工作正常,我的问题是,当onLocationChange()是所谓的,如果提供者称之为GPS或NETWORK,我应该采取不同的行动。有没有办法知道哪个? 要更加清楚:
当调用onLocationChanged(Location location)
时,是否有机会知道哪个提供者发起了呼叫?我曾尝试在提供程序字符串上使用if
,但它似乎不起作用。
谢谢。我见过isProviderEnabled(),我的问题是他们都启用!我应该知道哪个提供商为了做不同的事情而设置了位置,如果它是GPS或NETWORK。 – user2153669 2013-03-10 12:18:56
您应该在这里看到详细的答案:http://stackoverflow.com/questions/2021176/how-can-i-check-the-current-status-of-the-gps-receiver – 2013-03-10 12:23:16