【发布时间】:2016-06-14 04:58:49
【问题描述】:
我想在不使用 android Location Service 和 Google Api 的情况下获取纬度和经度。
那么有没有办法从连接的wifi路由器获取纬度和经度?
【问题讨论】:
标签: android location wifi latitude-longitude
我想在不使用 android Location Service 和 Google Api 的情况下获取纬度和经度。
那么有没有办法从连接的wifi路由器获取纬度和经度?
【问题讨论】:
标签: android location wifi latitude-longitude
首先使用以下代码获取IP地址:
public String getIpAddr() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = String.format("%d.%d.%d.%d", (ip & 0xff), (ip >> 8 & 0xff), (ip >> 16 & 0xff), (ip >> 24 & 0xff));
return ipString;
}
请注意:您需要在您的 AndroidManifest.xml 中添加 android.permission.INTERNET 和 android.permission.ACCESS_WIFI_STATE 以访问代码。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
在此之后使用一些 3rd 方网络服务,通过提供 IP 为您提供经度和纬度。示例:http://www.geoipservice.asmx/GetGeoIP?IPAddress=(将 IP 作为字符串传递)
希望你得到你的答案!!!
【讨论】:
java.net.UnknownHostException: Unable to resolve host "www.geoipservice.asmx": No address associated with hostname时出现以下错误
{"message":"private range","query":"My IP Address","status":"fail"} 的响应。private range 是什么意思
【讨论】:
Location Service
Location Service