Страница 1 из 1

покупки + аналитика или конвертнуть String в Double и String

Добавлено: 21 фев 2015, 16:13
парень
Всем привет.

Использую стандартные библиотеки in-app покупок и гугл аналитику. Столкнулся с проблемой передачи стоимости совершенной покупки в аналитику. Собственно вся соль в том что цены на продаваемые опции в приложении, будут меняться. Задача такова: получить текущую стоимость совершенной покупки и передать эту стоимость и код валюты в аналитику. Стоимость мы можем получить методом getPrice(), который имеет тип String. Например "150,00 руб." или "E2.77" (E - знак евро), а задать в аналитику нужно Double - стоимость и String код валюты. К примеру "USD", "RUB".

Как можно конвертировать "150,00 руб." в 150 и RUB , а например E3.0 в 3 и EUR, 2.99 $ в 2.99 и USD ????

Вижу обход этой ситуации, а именно менять стоимость приложения, только с обновлением приложения, и в коде программы в ручную указывать стоимость сразу в рублях (в аналитику сама конвертируется). Но тогда каждое изменение стоимости (например промоакция) - необходимо менять код программы.

Или очень простой для меня способ - это получение стоимости из маркета в определенной валюте, но как самому задать эту валюту ?

Re: покупки + аналитика или конвертнуть String в Double и St

Добавлено: 21 фев 2015, 20:19
doter.ua
Регуляркой

Re: покупки + аналитика или конвертнуть String в Double и St

Добавлено: 25 фев 2015, 18:18
парень
нашел то что искал!

В стандартном классе SkuDetails (из примеров гугла ) добавляем чтение price_amount_micros и "price_currency_code"

[syntax=java5]public class SkuDetails {
String mItemType;
String mSku;
String mType;
String mPrice;
String mTitle;
String mDescription;
String mJson;
String mPriceLong;
String mCodeCurrency;

public SkuDetails(String jsonSkuDetails) throws JSONException {
this(IabHelper.ITEM_TYPE_INAPP, jsonSkuDetails);
}

public SkuDetails(String itemType, String jsonSkuDetails) throws JSONException {
mItemType = itemType;
mJson = jsonSkuDetails;
JSONObject o = new JSONObject(mJson);
mSku = o.optString("productId");
mType = o.optString("type");
mPrice = o.optString("price");
mPriceLong = o.optString("price_amount_micros");
mCodeCurrency = o.optString("price_currency_code");
mTitle = o.optString("title");
mDescription = o.optString("description");
}

public String getSku() { return mSku; }
public String getType() { return mType; }
public String getPrice() { return mPrice; }
public String getPriceLong() { return mPriceLong; }
public String getCurrency() { return mCodeCurrency; }
public String getTitle() { return mTitle; }
public String getDescription() { return mDescription; }

@Override
public String toString() {
return "SkuDetails:" + mJson;
}
}[/syntax]
теперь мы получаем стоимость приложения методом getPriceLong(), а валюту в правильном стандарте getCurrency()