ユーザーが自分の場所を使用している都市を把握しようとしています。LocationManager と Geocoder を使用して、経度と緯度からいくつかの素晴らしいデータを取得しましたが、1 つも取得できません。subAdminArea 別名都市。郵便番号を含む他のすべてが受信されても、常にnullを返します。足りないものはありますか?
基本的に、これはデータを取得するために呼び出すメソッドです。
public String getLocation(Locale locale, Context context, boolean city, boolean postal, boolean state_prov) throws IOException{
LocationManager locMan = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locList = new MyLocList();
Geocoder gC = new Geocoder(context,locale);
Location gpsLocation = locMan.getLastKnownLocation(locMan.GPS_PROVIDER);
locMan.requestLocationUpdates(locMan.NETWORK_PROVIDER, 500, 200, locList);
Location networkLocation = locMan.getLastKnownLocation(locMan.NETWORK_PROVIDER);
if (city)
return (gC.getFromLocation(networkLocation.getLatitude(), networkLocation.getLongitude(), 1).get(0).getSubAdminArea());
else if (postal)
return (gC.getFromLocation(networkLocation.getLatitude(), networkLocation.getLongitude(), 1).get(0).getPostalCode());
else if (state_prov)
return (gC.getFromLocation(networkLocation.getLatitude(), networkLocation.getLongitude(), 1).get(0).getAdminArea());
else
return "";
}
このメソッドへの呼び出しは、次の方法で行われます。
String city = getLocation(Locale.getDefault(),getBaseContext(),true,false,false);
いくつかの調査で見つけた他の唯一のオプションは、にリクエストを送信することです
http://maps.googleapis.com/maps/api/geocode/json?address=POSTALCODE&sensor=true
郵便番号に基づいてその場所の JSON が返されるので、これを解析できますが、都市を見つけるのは大変な作業のようです。
私が見逃しているものはありますか?それとも私が間違ったことをしましたか?Androidの位置情報サービスは初めてです。