Android 根据用户的当前位置获取国家代码

Android 根据用户的当前位置获取国家代码,android,geolocation,geocoding,country-codes,mobile-country-code,Android,Geolocation,Geocoding,Country Codes,Mobile Country Code,我已经尝试了以下代码来获取国家代码名 TelephonyManager tm = (TelephonyManager)getActivity().getSystemService(getActivity().TELEPHONY_SERVICE); String countryCodeValue = tm.getNetworkCountryIso(); 但是如果我想获得用户所在的当前国家代码,我想这是行不通的 例如,如果用户从一个国家旅行到另一个国家,我希望获得他所在的国家代码

我已经尝试了以下代码来获取国家代码名

TelephonyManager tm = (TelephonyManager)getActivity().getSystemService(getActivity().TELEPHONY_SERVICE);
        String countryCodeValue = tm.getNetworkCountryIso();
但是如果我想获得用户所在的当前国家代码,我想这是行不通的

例如,如果用户从一个国家旅行到另一个国家,我希望获得他所在的国家代码

我有一个获取用户当前国家/地区代码的解决方案,但我被卡住了:

我获取用户的当前位置。 使用当前位置获取用户地址,我可以从中获取国家名称。 但是有没有办法从android中的国家名称中获取国家代码

另外,请让我知道是否有更有效的方法


谢谢:

您可以通过getResources.getConfiguration.locale.toString.split[1]获得ISO 3166-1 alpha-2 US、GB等。

供将来遇到此问题的任何人使用。使用

科特林:

SmartLocation.with(this).location(LocationGooglePlayServicesProvider()).oneFix().start {
            SmartLocation.with(this).geocoding().reverse(it, OnReverseGeocodingListener { location, mutableList ->
                val countryCode = mutableList[0].countryCode
            })
        }

请参阅此问题的答案:您可以获取用户位置的纬度和经度。然后使用“按纬度和经度查找国家”服务。嗨,这个解决方案到底有什么问题?它是否与您的购买地点或类似的东西相关联?不,这不起作用,因为它只会显示移动设备已设置的地区的国家代码,并且仅在用户更改移动设备的系统地区时才会更改。Droider的要求不同——他希望根据用户的当前位置动态推导国家代码,或者通过GPS获得,例如获取经度和纬度,并进行反向查找或其他方式。