0
在我的应用程序中,我想获取用户的位置并在地图上显示它(谷歌地图)。 在Android设备的设置,您可以检查Android谷歌地图使用GPS位置不是网络
- 使用无线网络
- 使用GPS卫星
当用户开始我显示至极一个对话框,用户可以选择获得mapactivity他现在的位置与否。
Old code deleted
如果用户想要得到他的位置,我检查是否启用了gps。如果没有,我开始设置。否则,我尝试获取位置。但即使GPS处于活动状态并且“使用无线网络”,他也不会获得位置信息。是否有解决方案来检查是否启用了“使用无线网络”。或者我需要更改哪部分代码才能通过GPS信号获取位置?
感谢
编辑mycurrentcode:
boolean isGps = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isNetwork = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if(!isGps && !isNetwork){
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
} else if(isGps && !isNetwork) {
String bestProvider = LocationManager.GPS_PROVIDER;
Location location = lm.getLastKnownLocation(bestProvider);
Toast.makeText(MapsTabActivitiy.this, "Location niet beschikbaar.", Toast.LENGTH_SHORT).show();
} else if(!isGps && isNetwork) {
String bestProvider = LocationManager.NETWORK_PROVIDER;
Location location = lm.getLastKnownLocation(bestProvider);
if(location == null){
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} else if (location != null){
mapcontroller.animateTo(new GeoPoint((int)(location.getLatitude()*1E6), (int)(location.getLongitude()*1E6)));
mapcontroller.setZoom(15);
}
}
else {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String bestProvider = lm.getBestProvider(criteria, false);
Location location = lm.getLastKnownLocation(bestProvider);
if(location == null){
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} else if (location != null){
mapcontroller.animateTo(new GeoPoint((int)(location.getLatitude()*1E6), (int)(location.getLongitude()*1E6)));
mapcontroller.setZoom(15);
}
}
所以我isProviderEnabled检查GPS_PROVIDER和NETWORK_PROVIDER。并与如果,否则,如果我改变如何获得位置。我需要找到唯一的情况是案例2(否则,如果(是GPS & &!isNetwork){})。通过GPS信号获取位置。
现在,即使当“使用无线网络”时,他也没有找到我的位置 – 2012-03-07 09:44:38
@TimonDevos,并且“使用gps卫星”是否被检查? – Egor 2012-03-07 09:49:44
但我希望设备在运行时选择至极位置更准确。如果我使用LocationManager.GPS_PROVIDER,那么设备不会选择?只有当NETWORK_PROVIDER未启用时,他需要从GPS_PROVIDER获取位置,反之亦然 – 2012-03-07 09:55:26