问题
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:
- I fetch users current location.
- 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