我们的目的是根据位置过滤内容,而无需从Android设备请求位置权限,
为了满足这一要求,我们尝试了以下选项,但仍然不可靠
var telephonyManager = context?.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
val countryCodeValue = telephonyManager.networkCountryIso
Locale默认返回美国或英国,即使他们在印度,通常用户的语言环境默认为英语
Locale.getDefault().getCountry()
我们不希望请求位置权限
Google的回复 - 他们没有任何专用API来检索用户的countryCode 注意: iOS有一个专用的API告诉用户的CountryCode,但Android没有
我们试图获取Android设备的IP(来自几个IP融合网站),有以下两种情况
注意: 甚至Netflix也会在启动期间确定国家/地区,而无需请求“位置”权限
答案 0 :(得分:3)
我认为您只有两种可能性......或者请求许可......或者在未经许可的情况下,您必须要求用户插入地址(也只是城市)并通过{{3}来检索国家/地区代码}}
答案 1 :(得分:3)
我同意以上评论。除了GPS位置之外,您无法获得确切的国家/地区。 您可以阅读这篇文章,希望对
有一些了解。关于您的查询,netflix的使用方式
https://help.netflix.com/en/node/26100
简介
1。禁用任何代理(即他们正在使用ip检查的代理)
2。通过访问whatismyip.com(相同)来检查您当前的IP地址
致谢
答案 2 :(得分:3)
您是否尝试过使用API 例如: http://ip-api.com/json
将通过分析请求IP“(不需要从设备获取IP)”来返回国家代码和许多其他信息。
但是很明显,我们需要假设用户不使用任何代理或vpn
(还有很多其他api,或者您可以自己实现和托管一个api)
答案 3 :(得分:0)
如果没有位置许可,无法获得它,你更好的近似是ip的本地化,但正如你所看到的,无法保证精确定位