HERE Maps:Android N中的setLocale保留系统语言后,RouteOptions的语言

时间:2019-05-31 16:30:39

标签: android here-api

我正在使用Here Maps Android SDK Premium版本3.11.2.82。使用“这里映射sdk”时将语言设置为RouteOptions对象时遇到问题。当我的系统语言是英语并且我更改了应用程序语言时,那么从Android N开始,路线结果中的语言不会更新,并且路线项以英语显示。这是我尝试找到路线时如何设置RouteOptions的方法:

val routeOptions = RouteOptions()
routeOptions.locale = localeProvider.currentLocale
routeOptions.transportMode = RouteOptions.TransportMode.TRUCK
routeOptions.routeType = RouteOptions.Type.FASTEST
routeOptions.setTruckLength(12.192f)
    .setTruckWidth(2.5908f)
    .setTruckHeight(3.9624f)
    .setTruckLimitedWeight(36.28739f).truckWeightPerAxle = 26.589585f
routePlan.routeOptions = routeOptions
router.calculateRoute(routePlan, RouteListener(destinationSearchResult, routePlan))

语言环境绝对不同(类似于西班牙语语言环境(“ es”)),并且我的设备设置为英语。

我通过设置

覆盖语言
val locale = Locale("es")
Locale.setDefault(locale)
LocaleList.setDefault(LocaleList(locale))

我还在基本活动中覆盖了这些内容:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(updateBaseContextLocale(base));
}

@Override
public void applyOverrideConfiguration(Configuration overrideConfiguration) {
    super.applyOverrideConfiguration(getUserLanguageConfiguration(overrideConfiguration));
}

我在其中使用上下文的更新语言环境设置新配置。最后,我在基本应用程序中覆盖了配置更改:

@Override
public void onConfigurationChanged(Configuration newConfiguration) {
    super.onConfigurationChanged(getUserLanguageConfiguration(newConfiguration));
....
}

我还在新配置中更新语言环境并将其设置为基本上下文。

RouteOptions.setLocale(..)在Android M中可以正常工作,但在Android N中则不能。我的应用程序的其余部分使用的是正确的语言,所以这是一个错误还是我监督了一些事情?还有其他方法可以在此处地图库中设置语言/地区吗?

1 个答案:

答案 0 :(得分:1)

请使用我们最新的HERE Android移动SDK(版本3.14)。通过RouteOptions更改语言环境应按我们的文档中所述进行工作:

Sets the language for route request using a locale.

https://developer.here.com/documentation/android-premium/api_reference_java/com/here/android/mpa/routing/RouteOptions.html#setLocale-java.util.Locale-