我想为我们的应用程序的用户检测某些与本地/文化相关的属性,主要是显示/隐藏某些支付方式和预选货币。
Locale.getDefault()
在 Android上返回的国家和货币的准确度如何?
有哪些信息来源流入其中,是否涉及 SIM 运营商之类的东西?
据我所知,这Locale.getDefault()
仅取决于您在“设置”->“语言和输入”->“语言设置”中选择的语言。如果您切换它,那么Locale.getDefault()
切换也是如此!
默认区域设置通常取决于 android 设置中的用户语言设置。因此,您不能依赖它并 100% 确定用户实际上是他假装的用户。
一种处理支付选项的好方法,那就是让用户在您的应用程序的第一次启动时选择一个区域设置并存储信息 n 共享首选项。然后,您可以将该语言环境用于您的应用程序。