1. ホーム
  2. android

[解決済み] getLastKnownLocation は null を返します。

2022-02-16 03:40:49

質問

この件に関する質問をいくつか読みましたが、私が必要としている答えがなかなか見つかりませんでした。

つまり、マップをセットアップして、現在のgps位置を取得したい場合です。 変数がNULLでないことを確認しましたが、結果は以下の通りです。

getLastKnownLocation(provider, false);

しかし、私はNULLを与えるので、私は助けを必要とする場所です。 私はCOARSE + FINEロケーションのパーミッションを追加しました。しかし、私は通常、私の携帯電話のためのすべての種類のネットワークデータを無効にしている、私は私の電話代の予測できないデータフロー費用をあまり喜ばないからです。ですから、このテストではWiFiだけを有効にして接続しています。

これを可能にするために、他に何か有効にする必要があるのでしょうか?WiFiで十分だと思うのですが?

解決方法は?

このメソッドを使用して、最終既知の位置を取得します。

LocationManager mLocationManager;
Location myLocation = getLastKnownLocation();

private Location getLastKnownLocation() {
    mLocationManager = (LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE);
    List<String> providers = mLocationManager.getProviders(true);
    Location bestLocation = null;
    for (String provider : providers) {
        Location l = mLocationManager.getLastKnownLocation(provider);
        if (l == null) {
            continue;
        }
        if (bestLocation == null || l.getAccuracy() < bestLocation.getAccuracy()) {
            // Found best last known location: %s", l);
            bestLocation = l;
        }
    }
    return bestLocation;
}