如何获取我的 android 应用程序的本地货币代码?

How do I get the local Currency Code for my android app?

我正在将我的 android 应用与 Google 分析 v4 集成。我在阿根廷,所以我的货币代码是 "ARS",而不是 "USD"。我需要指定(任何其他国家/地区)的当地货币代码,否则它会发送错误信息。 例如,一篇文章的价格标签上写着“9,32 ARS”,如果我没有指定货币代码,它会发送“9,32 USD”。谢谢

// Send Item
googleTracker.send(new HitBuilders.ItemBuilder()
    .setTransactionId(purchase.getOrderId())
    .setName(purchase.getPackageName())
    .setSku(purchase.getSku())
    .setCategory("Coins")
    .setPrice(skuDetails.getPriceMicros())
    .setQuantity(1)
    .setCurrencyCode(????)
    .build());

你可以这样试试

Currency currency = Currency.getInstance(Locale.getDefault());
String currencyCode = currency. getCurrencyCode();

我实际上可以使用这里的答案让它工作:SOLUTION

Google 添加到其 API 的新字段 "price_currency_code" 到 getSkuDetails,它允许我们获取交易的货币代码。您必须按照此答案所示编辑 SkuDetails.java。

根据支持 ISO 4217 的 measurement protocol definition for currency code you need to pass a valid ISO 4217 currency code to HitBuilders.ItemBuilder.setCurrencyCode() call. Android provides Currency class。您应该可以使用它来编写调用 setCurrencyCode 所需的参数。

在android 多种方式中获取当地货币。 但不好的是,在某些情况下,我们遇到了特定于设备的问题。

val currency = Currency.getInstance(Locale.getDefault())
               currency.currencyCode
               currency.symbol

上面的代码给出了货币代码a和符号,但是有一个问题,如果我们改变phone地区,货币也会改变。

我们有另一种获取本地货币的方法,如果我们更改 Phone 语言环境,本地货币不受影响

Currency.getInstance(Locale("",tm.networkCountryIso)).currencyCode.toString()               
Currency.getInstance(Locale("",tm.networkCountryIso)).symbol.toString()