首页 > 解决方案 > 如何检索 CountryCode / ISO?

问题描述

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

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

  1. 电话经理

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

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

语言环境默认返回美国或英国,即使他们在印度,通常用户的语言环境默认为英语

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

我们不希望请求位置权限

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

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

  1. IP地址

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

注意: 即使 Netflix 在发布期间确定国家/地区,也无需请求位置权限

标签: androidkotlinlocationin-app-purchasein-app-billing

解决方案


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


推荐阅读