以下のコードでは結果が得られません。
list_addr = gc.getFromLocation(latitude, longitude, 5);
値を返さなくてもnull
...
それは愚かなように振る舞います。
その解決策を教えてください。
Geocoder.getFromLocations(double, double, int)
結果を返すか (null も結果です)、例外をスローします。
コードのどこかで一般的な例外を黙ってキャッチしていませんか?
アップデート:
このコードを使用してから、logcat を確認してください。これが機能しない理由がわかるはずです。
Geocoder gc = new Geocoder(getApplicationContext(), Locale.getDefault());
try {
List<Address> list_addr = gc.getFromLocation(40.0d, 10.0d, 5);
} catch (IllegalArgumentException iae) {
Log.e("Geocoder IllegalArgumentException exception: ", iae.getMessage());
} catch (IOException ioe) {
Log.e("Geocoder IOException exception: ", ioe.getMessage());
}
アップデート2:
これは、エミュレータ v2.2: Androidのバグであることが判明しました。Geocoder、「サービスが利用できません」と表示されるのはなぜですか?
これを試して
List<Address> addresses = new Geocoder(MyActivity.this,Locale.getDefault()).getFromLocation(latitude, longitude, 1);