我将我的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());
答案 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()