Android 我们可以不用location api或google api获得经纬度吗

Android 我们可以不用location api或google api获得经纬度吗,android,location,wifi,latitude-longitude,Android,Location,Wifi,Latitude Longitude,我想在不使用android定位服务和谷歌Api的情况下获取纬度和经度。 那么,有没有办法从连接的wifi路由器获取纬度和经度?首先,使用以下代码获取IP地址: public String getIpAddr() { WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ip

我想在不使用android
定位服务
谷歌Api
的情况下获取纬度和经度。
那么,有没有办法从连接的
wifi
路由器获取纬度和经度?

首先,使用以下代码获取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\u WIFI\u状态以访问代码

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

在此之后,请使用一些第三方web服务,通过提供IP为您提供灵活性和自由度。示例:(将IP作为字符串传递)


希望你得到你的答案

首先,使用以下代码获取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\u WIFI\u状态以访问代码

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

在此之后,请使用一些第三方web服务,通过提供IP为您提供灵活性和自由度。示例:(将IP作为字符串传递)

希望你得到你的答案

试试这段代码

这将为您提供经度和纬度

请尝试此代码


这将为您提供经度和纬度

感谢您的回复。当尝试使用上述web服务
java.net.UnknownHostException:无法解析主机“www.geoipservice.asmx”:没有与主机名关联的地址
请尝试此web服务。。使用你的IP而不是谷歌的…)。。谢谢我尝试了以上的Web服务,但在响应中,我得到了以下响应
{“message”:“private range”,“query”:“我的IP地址”,“status”:“fail”}
。什么是private range请看这对我有效。。。感谢您的回复。当尝试使用上述web服务
java.net.UnknownHostException:无法解析主机“www.geoipservice.asmx”:没有与主机名关联的地址时,让我检查此Getting Down错误。请尝试此web服务。。使用你的IP而不是谷歌的…)。。谢谢我尝试了以上的Web服务,但在响应中,我得到了以下响应
{“message”:“private range”,“query”:“我的IP地址”,“status”:“fail”}
。什么是private range请看这对我有效。。。正如我在问题中提到的,如果不使用安卓
定位服务
@android,我认为没有
定位服务
你就无法获得它,正如我在问题中提到的,如果不使用安卓
定位服务
@android,我认为没有
定位服务