Get country code based on user's current location Android

末鹿安然 提交于 2019-12-11 14:48:59

问题


I have already tried out the following code to get country code name

TelephonyManager tm = (TelephonyManager)getActivity().getSystemService(getActivity().TELEPHONY_SERVICE);
        String countryCodeValue = tm.getNetworkCountryIso();

But I guess this does not work if I want to get current country code in which the user is.

For example if user travels from one country to another I want to get the country code in which he is in.

I have a solution to get user's current country code but I am stuck:

  1. I fetch users current location.
  2. Get the user address using its current location from this I can get the country name.

But is there any way I can get the country code from its country name in android ?

Also please let me me know if there is more efficient way.

Thanks :)


回答1:


You can get the ISO 3166-1 alpha-2 (US, GB, etc) by getResources().getConfiguration().locale.toString().split("_")[1].




回答2:


For anyone coming across this question in the future. Use SmartLocation

Kotlin:

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


来源:https://stackoverflow.com/questions/25241543/get-country-code-based-on-users-current-location-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!