获得用户';android设备上的货币是多少?

获得用户';android设备上的货币是多少?,android,location,locale,currency,currency-formatting,Android,Location,Locale,Currency,Currency Formatting,我正在尝试构建一个应用程序,用户可以根据自己国家的货币输入产品价格(货币符号附在编辑文本上),然后将价格上传到数据库。 我已经尝试过默认的Locale类,但它使用用户的配置,因此像我这样在美国以外的设备上使用美国英语的人只能输入美元值。此外,在某些情况下,从SIM卡获取信息并不有用。eBay甚至Play Store等应用程序是如何获取这些信息的?我唯一能想到的就是使用设备的GPS。如果是,如何提取信息?如果没有,我该怎么办?检查sim卡可能是个好主意 TelephonyManager telep

我正在尝试构建一个应用程序,用户可以根据自己国家的货币输入产品价格(货币符号附在编辑文本上),然后将价格上传到数据库。
我已经尝试过默认的Locale类,但它使用用户的配置,因此像我这样在美国以外的设备上使用美国英语的人只能输入美元值。此外,在某些情况下,从SIM卡获取信息并不有用。eBay甚至Play Store等应用程序是如何获取这些信息的?我唯一能想到的就是使用设备的GPS。如果是,如何提取信息?如果没有,我该怎么办?

检查sim卡可能是个好主意

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);    
Currency.getInstance(new Locale("", telephonyManager.getNetworkCountryIso()));

我住在欧盟,但我的智能手机使用美国地区,因为我更喜欢英语。代码为我提供了欧元货币

您可以通过检测用户的语言来检测货币。我认为使用全球定位系统不是一种合适的方法。@CyprienAubry例如,我知道我的国家有很多人使用英语,因为它更方便。尽管如此,我们使用的大多数与金钱相关的应用程序都可以决定语言之外的货币。好吧,也许你可以将一些信息关联起来,比如用户语言与谷歌个人资料或GPS位置。