如何在不使用GPS的情况下以编程方式检测Android设备当前所在的国家/地区?

Rey*_*ohn 5 java android

当我的应用程序运行时,我想检测当前位置的国家/地区名称并为该特定国家/地区名称执行一些操作,我可以使用地理编码器,gps轻松完成.但我希望从Locale获得它,或者是否有更多可用的东西.

shi*_*eph 15

使用此链接http://ip-api.com/json,这将提供所有信息为json.从这个json你可以很容易地到达这个国家.此站点使用您当前的IP工作,它会自动检测IP和发送回复的详细信息.

文档http://ip-api.com/docs/api:json 希望它有所帮助.

这就是我得到的.

{
"as": "AS55410 C48 Okhla Industrial Estate, New Delhi-110020",
"city": "Kochi",
"country": "India",
"countryCode": "IN",
"isp": "Vodafone India",
"lat": 9.9667,
"lon": 76.2333,
"org": "Vodafone India",
"query": "123.63.81.162",
"region": "KL",
"regionName": "Kerala",
"status": "success",
"timezone": "Asia/Kolkata",
"zip": ""
Run Code Online (Sandbox Code Playgroud)

}

  • 但它有局限性.他们的系统将自动禁止每分钟超过150个请求的任何IP地址. (2认同)

小智 5

我不知道Android API是否允许您检查关联的GSM网络的提供商代码。如果可能的话,您可以使用此代码进行检查,即对照此列表进行检查:http : //www.techgsm.com/page/gsm-provider-codes/network-provider-identify-codes.html,以找出该国家/地区手机是。