gpt4 book ai didi

Android:获取设备的当前语言和地区(国家)

转载 作者:行者123 更新时间:2023-12-02 01:31:39 33 4
gpt4 key购买 nike

获取设备当前区域的最佳方法是什么?假设用户在德国并使用意大利语作为设备语言。如果我使用 Locale.getDefault(),那么国家和语言就会相互映射,即语言是it,国家是IT。我想要的是DE/GR(无论德国的国家代码)

最佳答案

Android 不支持所有区域设置国家(组合),这就是为什么您无法像现在这样获取国家/地区。

您可以使用不同的方法获取国家代码参见示例:Where am I? - Get country

第二个答案为您显示了有用的代码:(感谢@Marco W.)

/**
* Get ISO 3166-1 alpha-2 country code for this device (or null if not available)
* @param context Context reference to get the TelephonyManager instance from
* @return country code or null
*/
public static String getUserCountry(Context context) {
try {
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
final String simCountry = tm.getSimCountryIso();
if (simCountry != null && simCountry.length() == 2) { // SIM country code is available
return simCountry.toLowerCase(Locale.US);
}
else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable)
String networkCountry = tm.getNetworkCountryIso();
if (networkCountry != null && networkCountry.length() == 2) { // network country code is available
return networkCountry.toLowerCase(Locale.US);
}
}
}
catch (Exception e) { }
return null;
}

关于Android:获取设备的当前语言和地区(国家),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805679/

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