如何在 Android 上获取用户的国家/地区代码?

发布于 2024-12-02 08:26:55 字数 40 浏览 1 评论 0原文

如何在 Android 上检索用户的国家/地区代码?我需要权限吗?

How can I retrieve a user's country code on Android? Do I need permissions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心房的律动 2024-12-09 08:26:55

要获取手机 SIM 卡中存储的国家/地区代码,您可以尝试

TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getSimCountryIso();

您也可以尝试:

 Locale locale = Locale.getDefault();
 locale.getCountry();

这将返回用户指定的语言/国家/地区的数据,而不是物理位置。

To get the country code stored in the sim card of the phone you can try

TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getSimCountryIso();

You can try also:

 Locale locale = Locale.getDefault();
 locale.getCountry();

This returns the data from the language/Country stated from the user and not the physical location.

你与清晨阳光 2024-12-09 08:26:55

当前位置的纬度和经度

将为您提供纬度和经度。

我建议使用谷歌地图的反向地理编码来获取国家/地区,然后如果您想获取一些国家/地区代码(我假设该国家/地区的电话代码,但我可能是错的),则使用查找表。

Latitude and Longitude of the current location

Will get you the latitude and longitude.

I'd suggest using Google Map's reverse geocoding for getting the country, and then using a lookup table if you want to get some country code (I'd assume the country's telephone code, but I could be wrong).

埖埖迣鎅 2024-12-09 08:26:55

最佳实践来自:本地化文档
建议使用此处设置的区域设置:

context.getResources().getConfiguration().locale;

此外,此处还提到了此字段。然后,您可以对其调用 getCountry() 来获取 ISO 3166-1 定义的两个字母的大写 ISO 国家/地区代码。 注意 java 文档说,如果区域设置与特定国家/地区不对应,它可能会返回空字符串。

Best practice from the: Localization documentation
recommends using the Locale set here:

context.getResources().getConfiguration().locale;

Furthermore, this field is also mentioned here. You can then call getCountry() on it to obtain the two-letter uppercase ISO country code as defined by ISO 3166-1. Note that java doc says it may return an empty String if the Locale doesn't correspond to specific country.

眼眸印温柔 2024-12-09 08:26:55

您可以尝试以下功能。它会返回您所在国家/地区的 ISO 代码:

  TelephonyManager telephonyManager = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);

        public String getSimCountryIso() {

    return telephonyManager.getSimCountryIso();

}

将以下权限添加到您的 AndroidManifest.xml 文件中。

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

You can try the following function. It's returning your country ISO code:

  TelephonyManager telephonyManager = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);

        public String getSimCountryIso() {

    return telephonyManager.getSimCountryIso();

}

Add permission below into your AndroidManifest.xml file.

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文