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

时间:2015-01-12 19:43:30

标签: android google-analytics in-app-purchase in-app-billing currency

我将我的Android应用与Google Analytics v4集成。我在阿根廷,所以我的货币代码是" ARS"而不是" USD"。我需要指定(任何其他国家/地区)的本地货币代码,否则会发送错误的信息。 例如,如果我没有指定它发送的货币代码" 9,32 USD",那么文章的价格标签会显示成本" 9,32 ARS"感谢

// 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());

4 个答案:

答案 0 :(得分:3)

您可以尝试这样

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

答案 1 :(得分:0)

我实际上可以在此处使用此答案:SOLUTION

Google在其API中添加了一个新字段,即" price_currency_code",以获取getSkuDetails,它允许我们获取交易的货币代码。您必须编辑SkuDetails.java,如此答案所示。

答案 2 :(得分:0)

根据measurement protocol definition for currency code,您需要将有效的ISO 4217 currency代码传递给HitBuilders.ItemBuilder.setCurrencyCode()调用。 Android提供了支持ISO 4217的Currency类。您应该能够使用它来编写setCurrencyCode调用所需的参数。

答案 3 :(得分:0)

在安卓中获得本地货币的方法很多。 但不好的是,在某些情况下,我们会遇到特定于设备的问题。

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

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

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

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