Google API v2 を使用して現在地の住所を取得しようとしています。
これが私がすることです:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = null;
String addressText = "";
try {
while (addresses==null){
addresses = geocoder.getFromLocation(userLocation.latitude,
userLocation.longitude, 1);
}
if (addresses != null && addresses.size() > 0) {
Address address = addresses.get(0);
addressText = String.format(
"%s, %s, %s",
address.getMaxAddressLineIndex() > 0 ? address
.getAddressLine(0) : "", address
.getLocality(), address.getCountryName());
}
} catch (IOException e) {
e.printStackTrace();
}
いくつかの投稿を読んだところ、getFromLocation() リクエストが常に結果を取得するとは限らないことがわかりました。だから私はそれをループしてみました。
これはクラッシュしませんが、addressText は常に "" です。なぜですか? アプリに INTERNET アクセス許可が付与されました。GPSは使いません。
userLocation は null ではないので、それは問題ではありません。それを使用してマップにマーカーを追加すると、正常に動作します。厳密にはジオコーダーに問題があるようです。