Язык моего приложения турецкий, а язык устройства - английский.Я могу установить язык турецкий с кодом ниже плавно.Все страницы приложения изменяются правильно.
private void changeLang(String locale) {
Resources res = this.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(locale.toLowerCase()));
res.updateConfiguration(conf, dm);
Configuration newConfig = new Configuration();
newConfig.locale = new Locale(locale.toLowerCase());
onConfigurationChanged(newConfig);
}
Но когда я отправляю push-уведомление, текст уведомления по-прежнему английский.Я вижу английскую локаль, когда я отлаживаю.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Locale current = getResources().getConfiguration().locale;
//current not change, always english
}
}
Почему сервис не может получить истинную локаль, всегда получайте локаль устройства.