PendingIntent, возвращаемый из getBuyIntent, всегда равен нулю

Я пытаюсь предложить подписку, но PendingIntent, который я получаю от getBuyIntent, всегда равен нулю. Хотя запрос покупок и деталей товара работает.

Я уже пробовал с разными учетными записями, подписанными, отлаживаемыми и неотлаживаемыми apks, но все равно.

Bundle bundle = mService.getBuyIntent(3, getActivity().getPackageName(), sku, "subs", developerPayload);

for (String key : bundle.keySet()) {
    Log.d("SUBSCRIBE: " + key + " = \"" + bundle.get(key) + "\"");
}

PendingIntent pendingIntent = bundle.getParcelable("RESPONSE_BUY_INTENT");

if (bundle.getInt("RESPONSE_CODE") == BILLING_RESPONSE_RESULT_OK) {
    if (pendingIntent != null) {
        // Start purchase flow (this brings up the Google Play UI).
        // Result will be delivered through onActivityResult().
        getActivity().startIntentSenderForResult(pendingIntent.getIntentSender(), RC_BUY, new Intent(),
                Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
    } else {
        Log.e("Subscribe", "PendingIntent is null!");
    }
}

И это вывод logcat

: ПОДПИСАТЬСЯ: RESPONSE_CODE = "0"
: ПОДПИСАТЬСЯ: BUY_INTENT = "PendingIntent{b1c5591: android.os.BinderProxy@c48ccf6}"
: Подписаться: PendingIntent равен нулю!

Это (http://developer.android.com/google/play/billing/billing_integrate.html#Subs) — это реализация, которой я следовал, с той небольшой разницей, что мой код помещается во фрагмент, а не в действие.


person Tobias    schedule 16.04.2016    source источник


Ответы (1)


Код нулевого ответа указывает на то, что он работает, но ваш ключ пакета неверен, я думаю, попробуйте

bundle.getParcelable("BUY_INTENT");
person Richard Goodman    schedule 16.04.2016
comment
Очередной явный тупой баг копипаста :-) Уже не первый раз. Жаль, что документация Google не является вики ... но все равно спасибо! - person Tobias; 16.04.2016