如何在Android中获取当前位置的邮政编码或区号?

6

我想在我的应用程序中获取安卓设备当前位置的邮政编码,有没有任何定位方法或示例代码。我已经尝试使用地理编码器,但它只提供纬度和经度位置。


1
你看过这个吗:https://dev59.com/8VbUa4cB1Zd3GeqPBsJM - Parth Doshi
3个回答

17

显然你没有正确地使用它...

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
// lat,lng, your current location
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1); 

现在Address列表包含最接近的已知区域。 Address对象具有getPostalCode()函数。获取第一个对象并找到它的邮政编码。

就是这样。


1
嗨@st0le,当我调用addresses.get(0)).getAddressLine(0))时,我得到了5-1-304,Koti Main Rd,Badi Chowdi,Koti作为结果。但是当我调用addresses.get(0)).getPostalCode())时,我得到了null。请帮助我只获取邮政编码。 - Sudheer Kumar
1
@SudheerKumar,可能没有填写。尝试其他的AddressLine(1..n)。您可以通过向Google发出请求来更正数据。 - st0le
我现在明白了。谢谢 :) - Sudheer Kumar
在这种情况下,“lat”和“lng”是什么?显然是纬度和经度,但是如果我想获取用户位置,我如何知道他们的纬度和经度呢? - AdamMc331
@AdamMc331,那是另一个问题的一部分。 - Jorge E. Hernández

2

请查看Android中的Geocoder类。该类具有适用于我的getFromLocation方法。您可以在活动中像以下方式使用它。

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);

Address类文档

如果出现问题,您应该寻找一个反向地理编码服务。


0

仔细阅读this

getFromLocation方法是你需要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接