アプリを初めて起動するときに、ユーザーの現在のロケールを検出し、それに応じて SharedPreference を設定したいと考えています。getResources() からユーザーの現在のロケールを取得しています。これは、アプリの初回起動時に設定されることがわかりました。
// Set the locale
Locale locale = getResources().getConfiguration().locale;
if(locale != Locale.US)
{
Log.i("ActivityDownloader", "Locale: " + locale.toString() + ", (" + Locale.US.toString() + ")");
}
残念ながら、コンソールに次のテキストを含むログ エントリが表示されます。
I/ActivityDownloader: ロケール: en_US, (en_US)
2 つのロケールが一致しないのはなぜですか? 代わりに Locale.toString() を一致させる必要がありますか?