我一直很困惑于Android在-申请账单关于RESTORE_TRANSACTIONS。
我有这个片段对我的应用程序内进行捐赠:
BillingHelper.requestPurchase(mContext, "donation");
它的伟大工程,没有任何问题存在。 问题就在这里,在选购的时候完成我设置一个布尔值:
if (BillingHelper.latestPurchase.isPurchased()) {
DONATE_VERSION = true;
}
该应用程序按预期工作在此之后,除非用户卸载应用程序。 我存储共享偏好内DONATE_VERSION。 存储到互联网上的个人数据库的购买信息是不是一种选择。
当用户重新安装应用程序,他们可以得到广告捐赠删除的唯一方法是通过再次捐赠! 我不希望这是事实。 我希望能够查询谷歌的哪些项目(在这种情况下,突出部分的“捐赠”项目)已购买的结果。 我称这种现象的onCreate():
BillingHelper.restoreTransactionInformation(BillingSecurity.generateNonce());
但是现在呢? 如果用户之前购买的应用程序内购买“捐赠”的管理,我怎么可以查询谷歌,以获取有关该项目已经从应用内结算购买的信息,让我可以重新设置我的布尔? 因为我一直是这样搞乱,聊天的IRC,现在淘API的6小时左右,请尽可能清楚的,我不明白这一点。
编辑:
我的onReceive()方法:
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i(TAG, "Received action: " + action);
if (ACTION_PURCHASE_STATE_CHANGED.equals(action)) {
String signedData = intent.getStringExtra(INAPP_SIGNED_DATA);
String signature = intent.getStringExtra(INAPP_SIGNATURE);
purchaseStateChanged(context, signedData, signature);
} else if (ACTION_NOTIFY.equals(action)) {
String notifyId = intent.getStringExtra(NOTIFICATION_ID);
notify(context, notifyId);
} else if (ACTION_RESPONSE_CODE.equals(action)) {
long requestId = intent.getLongExtra(INAPP_REQUEST_ID, -1);
int responseCodeIndex = intent.getIntExtra(INAPP_RESPONSE_CODE, C.ResponseCode.RESULT_ERROR.ordinal());
checkResponseCode(context, requestId, responseCodeIndex);
} else {
Log.e(TAG, "unexpected action: " + action);
}