从Windows Phone 8获取国家/地区名称

9

我有这个截图:

enter image description here

我打算获取应该是“尼日利亚”的国家名称。在查阅了System.Globalization类之后,我找到了下面的代码片段:

System.Globalization.RegionInfo.CurrentRegion.EnglishName

但是我得到的是“美国”,这是上面图像中的“区域格式”。有没有办法检索国家/地区值设置?


使用RegionInfo.CurrentRegion.DisplayName会得到什么? - Mattias Josefsson
使用RegionInfo.CurrentRegion.DisplayName,我得到了相同的结果“美国”。 - Sunday Okpokor
你尝试过在实际设备上测试吗? - Alaa Masoud
我已经在设备上尝试了他的代码,但他是正确的,有一个属性可以反映正确的国家/地区.. - Sandeep Chauhan
我已经在实际设备上尝试过了,仍然没有给我“尼日利亚”。 - Sunday Okpokor
5个回答

2

我知道这篇文章已经有点老了,但是也许有人来到这里寻找答案:

System.Globalization.RegionInfo.CurrentRegion.TwoLetterISORegionName

1
这只返回两个字母的代码,例如 US 而不是 美国。此外,问题似乎是关于为什么 OP 没有得到他期望的名称。 - p.s.w.g

0

用户所询问的正确答案是:

Windows.System.UserProfile.GlobalizationPreferences.HomeGeographicRegion

这应该为您提供有关“语言+地区”设置中的国家/地区选择的信息。


0

试试这个

System.Globalization.RegionInfo.CurrentRegion.DisplayName;

仍然显示“美国”,我认为RegionInfo类只显示区域格式值,而不是国家/地区值。 - Sunday Okpokor

0

使用System.Threading.Thread.CurrentThread.CurrentCulture.它应该正确地反映手机语言。


我认为他想获取地区,而不是语言。 - anderZubi
我已经尝试了System.Threading.Thread.CurrentThread.CurrentCulture,这将给我en-US的区域国家代码。我想要获取的是“尼日利亚”这个设置的国家/地区值,如上面我发布的图片所示。 - Sunday Okpokor

-2

这是我在一天结束时所做的事情。首先,我使用了位置API库来获取该位置的坐标(经度和纬度)。

        Geolocator geolocator = new Geolocator();
        geolocator.DesiredAccuracyInMeters = 50;

        try
        {
            // Request the current position
            Geoposition geoposition = await geolocator.GetGeopositionAsync(
                maximumAge: TimeSpan.FromMinutes(5),
                timeout: TimeSpan.FromSeconds(10)
            );

            string latitude = geoposition.Coordinate.Latitude.ToString("0.00");
            string longitude = geoposition.Coordinate.Longitude.ToString("0.00");                 


        }
        catch (Exception ex)
        {
            if ((uint)ex.HResult == 0x80004004)
            {
                // the application does not have the right capability or the location master switch is off
                MessageBox.Show("Location is disabled in phone settings.", "Can't Detect Location", MessageBoxButton.OK);

            }
            //else
            {
                // something else happened acquring the location
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }

然后使用谷歌的反向地理编码功能,根据经度和纬度获取位置的信息或详细资料。
http://maps.googleapis.com/maps/api/geocode/json?latlng=latitiude,longitude&sensor=true

例如,如果纬度为60,经度为60

http://maps.googleapis.com/maps/api/geocode/json?latlng=60,60&sensor=true

从JSON结果中,您将能够检索到该国家的长名称和短名称。

1
该死,那是一个非常糟糕的解决方案。如果有人去了另一个国家会发生什么?然后他的手机格式突然改变了,哈哈。 - Leon Cullens
1
明白你的意思,希望微软能够提出一个解决方案。 - Sunday Okpokor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接