HERE 地图:Android N 中 setLocale 之后的路由选项语言保持系统语言



我正在使用Here Maps Android SDK Premium版本3.11.2.82。我在使用此处地图 sdk 时将语言设置为我的 RouteOptions 对象时遇到问题。当我的系统语言为英语并且我更改了应用程序语言时,从 Android N 开始,路由结果中的语言不会更新,并且路由项目以英语显示。以下是我在尝试查找路由时设置路由选项的方法:

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 中则不然。我的应用程序的其余部分使用正确的语言,所以这是一个错误还是我在监督什么?是否有其他方法可以将语言/区域设置设置为"此处地图"库?

请使用我们最新的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-

最新更新