0

ネットワーク プロバイダーに基づいてユーザーの場所を取得しようとしていますが、イベントが発生せず、UpdateLocation()メソッドが呼び出されません。コードは次のとおりです。

public void UpdateLocation(Location location)
{
    GeoPoint geoPoint = new GeoPoint((int)(location.getLatitude() * 1E6),(int)(location.getLongitude() * 1E6));
    MapController controller = mapView.getController();
    controller.setCenter(geoPoint);
}
public void GetLocation()
{
     // Acquire a reference to the system Location Manager
    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    // Define a listener that responds to location updates
    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
          // Called when a new location is found by the network location provider.
          UpdateLocation(location);
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {}

        public void onProviderEnabled(String provider) {}

        public void onProviderDisabled(String provider) {}
      };

    // Register the listener with the Location Manager to receive location updates
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}

何が問題なのですか?ここで何か間違ったことをしていますか?

4

2 に答える 2

1

私の記憶が正しければ、NETWORK_PROVIDER は Wi-Fi 信号を使用して場所を特定します。

確認するいくつかのこと:

  • Wi-Fi はオンになっていますか?
  • デバイスは Wi-Fi 信号を登録していますか? 複数の?(1個じゃ足りないかも)
  • [設定] の [位置情報サービス] で [ワイヤレス ネットワークを使用する] にチェックが入っていますか?
于 2012-08-23T22:27:12.247 に答える
0

場所を要求する前に、場所プロバイダーが有効になっているかどうかを確認する必要があります。

locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

このチュートリアルを見てください。サンプルコードが含まれています

于 2012-08-23T22:29:38.253 に答える