用阿拉伯语获取用户当前位置名称?

时间:2017-08-02 05:16:07

标签: android geolocation arabic

我需要在阿拉伯语中获取位置名称,如果gps为英语启用我使用以下代码。

        Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());

       // LogCat: Display language = English

        Log.i("Display language = ", "" + mLocale.getDisplayLanguage());

        Log.i("geocoder geocoder = ", "" + geocoder.toString());

      // Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
        try {
            List<Address> listAddresses = geocoder.getFromLocation(latitude, longitude, 1);
            if (null != listAddresses && listAddresses.size() > 0) {
                String _Location = listAddresses.get(0).getAddressLine(0);
               // Log.i("_Location = ", "" + _Location);

                Address address = listAddresses.get(0);

                Log.i("address = ", "" + address);
                result = address.getLocality();

                Log.i("result = ", "" + result);
                // Toast.makeText(getApplicationContext(), "Your Location  NAME is -" + result , Toast.LENGTH_LONG).show();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
  

地址[addressLines = [   阿布扎比 - 阿拉伯联合酋长国&#34;],特征=第3   Street,admin =阿布扎比,sub-admin = null,locality = Abu   比,通道=第三   Street,postalCode = null,countryCode = AE,countryName = United Arab   酋,hasLatitude =真,纬度=,hasLongitude =真,经度=,电话= NULL,URL =无效,额外=空]

我需要基于用户在app中选择的语言的阿拉伯语中的位置值。

我给了Locale mLocale = new Locale("ar","AE");但它给的是阿拉伯语的国名,我需要阿拉伯语的地方价值。

在galaxy s7数据中根据阿拉伯语选择正确得出阿拉伯语数据

只有当我通过语言环境阿拉伯语时,才会提供英语数据。

1 个答案:

答案 0 :(得分:2)

在最近的参考资料中,Locale拥有适用于ISO 639-1 / ISO 3166-1的语言/国家/地区代码信息。

ISO 639-1是两个字母的小写语言代码。阿拉伯语以这种格式定义。

您可以像这样设置阿拉伯语的语言环境:

\

注意:

Android区域设置参考:https://developer.android.com/reference/java/util/Locale.html

ISO 639-1代码参考:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

希望它适合你。