我正在使用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中则不能。我的应用程序的其余部分使用的是正确的语言,所以这是一个错误还是我监督了一些事情?还有其他方法可以在此处地图库中设置语言/地区吗?
答案 0 :(得分:1)
请使用我们最新的HERE Android移动SDK(版本3.14)。通过RouteOptions
更改语言环境应按我们的文档中所述进行工作:
Sets the language for route request using a locale.