我正在开发app-in-app模块。但仍有一些问题。
1)我实施了许可证验证库(LVL)。所有这些都像样本应用程序一样成功完成但是我收到错误消息:“免费申请不允许CHECK_LICENSE权限。”将应用程序上传到市场时。 我认为我需要实现LVL,因为它与应用程序计费相关的安全问题。但似乎LVL仅适用于付费应用程序。我的申请是免费的,包括在app模块中结算。什么时候有免费应用程序?
2)我在付款处理成功后(将调用purchaseInApp()方法)实现了如下所示的结算中应用程序模块:
private class MyAppPurchaseObserver extends PurchaseObserver {
public MyAppPurchaseObserver(Handler handler) {
super(MyAppPurchaseObserver.this, handler);
}
@Override
public void onBillingSupported(boolean supported) {
//Doing something
}
@Override
public void onPurchaseStateChange(PurchaseState purchaseState, String itemId,
int quantity, long purchaseTime, String developerPayload) {
if(purchaseState == PurchaseState.PURCHASED) {
purchasedInApp();
}
}
@Override
public void onRequestPurchaseResponse(RequestPurchase request,
ResponseCode responseCode) {
if (responseCode == ResponseCode.RESULT_OK) {
//OK
} else if (responseCode == ResponseCode.RESULT_USER_CANCELED) {
//Canceled
} else if(responseCode == ResponseCode.RESULT_BILLING_UNAVAILABLE ||
responseCode == ResponseCode.RESULT_ITEM_UNAVAILABLE ||
responseCode == ResponseCode.RESULT_SERVICE_UNAVAILABLE ||
responseCode == ResponseCode.RESULT_DEVELOPER_ERROR) {
//Error
} else {
//Fail
}
}
@Override
public void onRestoreTransactionsResponse(RestoreTransactions request,
ResponseCode responseCode) {
if (responseCode == ResponseCode.RESULT_OK) {
//OK
} else {
//Error
}
}
}
在主线程中调用上面实现的方法? 或者它是分开的线程吗?
提前致谢。
答案 0 :(得分:0)
据我所知,LVL和应用内结算是相互独立的。他们唯一分享的是他们使用您的公钥进行验证。对于应用内结算,您的应用需要使用com.android.vending.BILLING
权限构建。
计费请求以异步方式发送到手机上的其他应用程序(Android Market或MyApps,具体取决于手机)。我不相信请求发出方法阻止,所以可以在UI线程或后台线程上运行它们。我不知道响应回调是否在UI线程上,但我对此表示怀疑(因为它们不适用于LVL)。