0

我有一个地址,想在 Google 地图上显示该地址。地图显示但未指向该特定地址。这是我的代码。我收到此错误:couldn't get connection factory client

private MapController mc;
private MapView mapView;
GeoPoint p;
private MyOverlays mapOverlay;
mapView = (MapView) findViewById(R.id.myMapView);
mapView.setBuiltInZoomControls(true);
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
  try {
    List<Address> addresses = geoCoder.getFromLocationName(loc, 5);
    if (addresses.size() > 0) {
      p = new GeoPoint(
        (int) (addresses.get(0).getLatitude() * 1E6),
        (int) (addresses.get(0).getLongitude() * 1E6));
      mc.animateTo(p);
      mapView.invalidate();
    }
  } catch (IOException e) {
    e.printStackTrace();
  }
  if (p != null) {
    Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
    mapOverlay = new MyOverlays(drawable, this);
    OverlayItem overlayitem = new OverlayItem(p, "", "");
    mapOverlay.addOverlay(overlayitem);
    mapView.getOverlays().add(mapOverlay);
    this.mc = this.mapView.getController();
    this.mc.setCenter(this.p);
    this.mc.setZoom(16);
  }
  // LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  // lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, (LocationListener) this);
4

2 回答 2

1

我假设您在 android Manifest中提供了以下权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

您需要在测试设备上激活 GPS。如果您在模拟器上进行测试并且它没有被激活,如果您尝试使用LocationManager.

Google Map Activity 应该会自动激活模拟器中的 GPS 设备,但如果您想直接使用位置管理器,则需要自己执行此操作。 使用 GPS 和设置位置将对您有所帮助。

于 2012-12-07T04:31:54.940 回答
0

您应该在设备上而不是在模拟器上测试您的代码。

不知道为什么,但是模拟器中存在一些问题。

就我而言,它在设备上正常工作,但在模拟器上给出相同的错误。

于 2012-06-01T07:03:33.927 回答