Android でユーザーの現在のロケールを取得するにはどうすればよいですか?
デフォルトのものを入手することはできますが、これは現在のものではない可能性があります。
基本的に、現在のロケールの2文字の言語コードが必要です。デフォルトのものではありません。Locale.current()
ベストアンサー1
デフォルトはLocale
、実行時にシステム プロパティ設定からアプリケーション プロセスに対して静的に構築されるため、アプリケーションの起動時にLocale
そのデバイスで選択されたを表します。通常、これで問題ありませんが、アプリケーション プロセスの実行後にユーザーが の設定を変更した場合、 の値はすぐには更新されない可能性があります。Locale
getDefaultLocale()
アプリケーションで何らかの理由でこのようなイベントをトラップする必要がある場合は、代わりにLocale
リソースConfiguration
オブジェクトから利用可能なものを取得してみてください。
Locale current = getResources().getConfiguration().locale;
アプリケーションで必要な場合は、設定の変更後にこの値がより速く更新されることがあります。
コメントからのAPI 24への更新
Locale current = getResources().getConfiguration().getLocales().get(0) // is now the preferred accessor.