如何在安卓中获取当前城市名称?

4

我需要获取用户当前所在城市的名称。如果使用AGPS或其他方式获取城市名称,均可。我需要在安卓系统中获取当前城市的方法或代码,请您分享如何实现。


2个回答

22

这个是用来从当前经纬度获取位置名称的。

Geocoder gcd = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(lat, lng, 1);
if (addresses.size() > 0) 
    System.out.println(addresses.get(0).getLocality());

我用了你的代码,但它没有运行。我已经添加了网络权限和访问精确位置权限。我需要再添加其他权限吗? - arnp
1
尝试{ Geocoder gcd = new Geocoder(context, Locale.getDefault()); List<Address> addresses = gcd.getFromLocation(16.045813,76.992188, 1); if (addresses.size() > 0) strlocation = String.valueOf(addresses.get(0).getLocality()); Toast.makeText(this, strlocation, Toast.LENGTH_SHORT).show(); }catch(Exception e) { e.printStackTrace(); } - arnp
java.lang.ClassNotFoundException: com.andro.loc.LocfinderActivity在加载器dalvik.system.PathClassLoader[/data/app/com.andro.loc-2.apk]中。 - arnp
你的Activity类在DVM中找不到。这不是一个地理编码器异常,你在清单文件中有提到Activity名称吗?如果是的话,请从模拟器中删除应用程序并重新安装它;如果没有,请在清单文件中添加它。 - user370305
我遇到了一个错误,它说“等待服务器的响应超时”。我已经添加了互联网权限。还需要做些什么吗? - Bhaumik Belani

0

我已经赞同了user370305的答案,但为了备选,我也会发表另一种解决方案。

你也可以通过 IP 地址找到城市名。

请查看这个网站这里的答案


移动安卓设备的IP地址有什么相关性? - Jasper

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