我的目的是推迟Android中的用户订阅。首先,我需要订阅购买令牌来调用该API。
我有此代码:
private IAPManager() {
}
public static IAPManager getInstance() {
return instance;
}
public void init(final Context context) {
if (!BillingProcessor.isIabServiceAvailable(context)) {
Log.d(TAG, "In-app billing service is unavailable, please upgrade Android Market/Play to version >= 3.9.16");
}
Log.d("DEF_SUB", "billing initd");
bp = BillingProcessor.newBillingProcessor(context, LICENSE_KEY, new BillingProcessor.IBillingHandler() {
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
updatePrefsWithPurchaseToken(context, details.purchaseInfo.purchaseData.purchaseToken);
Toast.makeText(context, "purchased TOAST", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onProductPurchased: " + productId);
resultListener.onResult(true);
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
Log.d(TAG, "onBillingError: " + Integer.toString(errorCode));
if (resultListener != null)
resultListener.onResult(false);
}
@Override
public void onBillingInitialized() {
Log.d(TAG, "onBillingInitialized");
readyToPurchase = true;
bp.loadOwnedPurchasesFromGoogle();
}
@Override
public void onPurchaseHistoryRestored() {
Log.d(TAG, "onPurchaseHistoryRestored");
}
});
bp.initialize();
}'
再加上一些,但它似乎没有执行代码updatePrefsWithPurchaseToken()
,因此在必要时我无法访问代码中的购买令牌。吐司或日志也不会出现。