Android当前gps位置不正确
我正在使用三星spica 1.5测试当前的gps定位应用程序,但它没有显示我的当前位置,只是显示了另一个位置 这是我的密码:Android当前gps位置不正确,android,gps,Android,Gps,我正在使用三星spica 1.5测试当前的gps定位应用程序,但它没有显示我的当前位置,只是显示了另一个位置 这是我的密码: public class MaptestActivity extends MapActivity implements LocationListener { private MapView mapView = null; private LocationManager lm = null; private double lat =
public class MaptestActivity extends MapActivity implements LocationListener {
private MapView mapView = null;
private LocationManager lm = null;
private double lat = 0;
private double lng = 0;
private MapController mc = null;
private MyLocationOverlay myLocation = null;
private String current;
private PositionMarkersList positionMarkersList = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) this.findViewById(R.id.mapView);
mapView.setBuiltInZoomControls(true);
lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this);
mc = mapView.getController();
mc.setZoom(15);
myLocation = new MyLocationOverlay(getApplicationContext(), mapView);
myLocation.runOnFirstFix(new Runnable() {
public void run() {
mc.animateTo(myLocation.getMyLocation());
mc.setZoom(17);
}
});
mapView.getOverlays().add(myLocation);
GeoPoint pp=myLocation.getMyLocation();
//addPosition(pp);
if (myLocation.isMyLocationEnabled()!=false)
{
GeoPoint p =myLocation.getMyLocation();
lat= p.getLatitudeE6();
lng= p.getLongitudeE6();
Toast.makeText(getBaseContext(),
"geolocalisation activÈ lat: "+lat+ " long: " +lng,
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getBaseContext(),
"geolocalisation desactivÈe" ,
Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onResume() {
super.onResume();
myLocation.enableMyLocation();
myLocation.enableCompass();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_S) {
mapView.setSatellite(!mapView.isSatellite());
return true;
}
return super.onKeyDown(keyCode, event);
}
public void onLocationChanged(Location location) {
lat = location.getLatitude();
lng = location.getLongitude();
Toast.makeText(
getBaseContext(),
"Location change to : Latitude = " + lat + " Longitude = "
+ lng, Toast.LENGTH_SHORT).show();
GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
mc.animateTo(p);
mc.setCenter(p);
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
//ajout d'une position
private void addPosition(GeoPoint geoPoint) {
OverlayItem overlayitem = new OverlayItem(geoPoint, current, current);
positionMarkersList.addMarker(overlayitem);
}
}
有人知道这件事吗
当我点击run测试应用程序时,我有一个测试方法列表(虚拟设备…),但手机名称旁边有一个“!”我不知道为什么
谢谢 你必须用谷歌API制作一个虚拟设备
另外,在显示设备位置的位置,我可以知道地图上显示的位置与当前位置的距离吗?请确保在AndroidManifest.xml中包含位置服务的正确权限 全球定位系统: 访问\u FINE\u位置 无线网络: 访问\u粗略\u位置
所有权限:我在突尼斯,它用法语向我显示了一个位置!!!我正在用真正的设备测试!!!sumsung galaxy spica为什么不工作?当我进行测试时,我得到的信息是“地理定位未激活”!!这可能与我的位置或类似的事情有关吗??也许在突尼斯,我不相信gps在这里工作!!您的手机未获取当前位置,因此您的设备将返回最后一个已知位置。据我所知。您可以在设备上运行Google地图应用程序,清除应用程序的所有缓存数据,然后为您的当前位置重新加载该应用程序。这样,您的设备将尝试获取当前位置。“地理定位未激活”听起来您可能需要在首选项中打开gps。请确保您的gps已激活是的,我已包括所有这些权限
public Location getCurrentLocation() {
try {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// ---Get the status of GPS---
boolean isGPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
// If GPS is not enable then it will be on
if (!isGPS) {
Intent intent = new Intent(
"android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
}
Location location = lm
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location == null) {
location = lm
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
return location;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}