-1

クラスのメソッドのドキュメントに基づいています:isPresentGeocoder

Geocoder メソッド getFromLocation および getFromLocationName が実装されている場合は true を返します。ネットワーク接続の欠如により、これらのメソッドが null または空のリストを返すことがあります。

Geocoder クラスには、コア Android フレームワークに含まれていないバックエンド サービスが必要です

  1. どういう意味ですか。Android自体はこれら2つのメソッドを実装していませんか? そうでない場合、誰がそれらを実装するのですか?!!!
  2. メソッドが を返しfalseたが、デバイスがインターネットに接続されていた場合はどうなりますか? そのような状況でこれらの2つの方法を使用できるようにするにはどうすればよいですか?
4

1 に答える 1

1

接続の可否、つまり、Geocoder をジオコーディングに使用できるかどうかを制御していると思います。Geocoder を何度も使用しましたが、問題はありませんでした。

オンライン mapa データを使用し、ジオコーディングのパフォーマンスは接続速度に依存するため、Geocoder はインターネット接続に依存しています - より良い接続 - より良いより速い結果。

インターネット接続をテストするのに十分だと思います:

public boolean isConnected(Context context) {
   ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo info = getActiveNetworkInfo();
   return info != null && info.isConnected();
}

アップデート:

今、私は問題を理解しています。の使用法に対する回答は、次のisPresent()場所にあります。

リンクをクリックする時間がない人のために:

Google の Reto Meier に私の理論が正しいことを確認するように依頼したところ、彼は「正しい。Geocoder は、AOSP の一部ではない Google API アドオンの一部です」と答えました。

そのため、Play ストア、GMail アプリなどを搭載していないデバイスには、Geocoder バックエンドもありません。

于 2013-11-08T09:33:36.733 に答える