gpt4 book ai didi

android - 如何检索 CountryCode/ISO?

转载 作者:IT老高 更新时间:2023-10-28 13:39:56 26 4
gpt4 key购买 nike

我们的目的是在不向 Android 设备请求位置权限的情况下根据位置过滤内容,

为了满足这个要求,我们尝试了以下选项,但仍然不可靠

  1. 电话经理

如果没有 SIM 卡,它将无法工作,再次说明如果来自美国的用户现在到印度旅行,下面的 fragment 返回美国而不是印度

var telephonyManager = context?.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
val countryCodeValue = telephonyManager.networkCountryIso
  1. 语言环境

Locale 默认返回美国或英国,即使他们在印度,通常用户的 Locale 默认为英文

 Locale.getDefault().getCountry()
  1. 全局定位系统

我们不希望请求位置权限

  1. 从登录的 Google 帐户中检索国家/地区详细信息

来自 Google 的回复 - 他们没有任何专用 API 来检索用户的 countryCode笔记:iOS 有一个专门的 API 可以告诉用户的 CountryCode,但 Android 没有

  1. IP 地址

我们尝试获取Android设备的IP(从几个IP融合网站),有以下两种情况

  • 用户连接到 WiFi - 我们能够获取 countryCode(WIFI IP: 64.134.234.17)
  • 用户连接到移动数据 - 我们得到了错误的国家代码即使我们在美国,它说IP来自日本(移动网络IP:210.253.218.106)

注意:甚至 Netflix 在发布期间也确定了国家/地区,而无需请求位置许可

最佳答案

我认为您只有两种可能...或请求许可...或未经许可您必须要求用户插入地址(也只有城市)并通过 Google Geocoding Service 检索国家代码

关于android - 如何检索 CountryCode/ISO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com