1. ホーム
  2. android

[解決済み] AndroidでGPSやインターネットを使わずにユーザーの現在地を取得する。

2023-03-27 06:04:24

質問

GPSやインターネットを使わずに、ユーザーの現在地を取得することは可能でしょうか?つまり、モバイル ネットワーク プロバイダーの助けを借りてということです。

どのように解決するのですか?

位置の取得には LocationManager.NETWORK_PROVIDER の代わりに LocationManager.GPS_PROVIDER . そのため NETWORK_PROVIDER はGSMか無線LANのどちらか利用可能なほうで解決されます。もちろん、無線LANをオフにすると、GSMが使用されます。携帯電話ネットワークを使用すると、基本的に 500 m の精度になることを覚えておいてください。

http://developer.android.com/guide/topics/location/obtaining-user-location.html には、本当に素晴らしい情報とサンプルコードがあります。

のコードのほとんどを書き終えたら、今度は OnCreate() のコードのほとんどが終わったら、これを追加してください。

// 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.
      makeUseOfNewLocation(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);

また、アクティビティに LocationListener クラスを実装し、その結果 onLocationChanged() を実装します。