アプリ内課金モジュールを開発しています。しかし、まだいくつかの問題があります。
1) License Verification Library (LVL) を実装しました。すべてサンプル アプリケーションのように実行され、正常にテストされました。しかし、「無料アプリケーションには CHECK_LICENSE 権限が許可されていません」というエラー メッセージが表示されました。アプリを市場にアップロードするとき。アプリ内課金のセキュリティ関連の問題なので、LVLを実装する必要があると思いました。ただ、LVLは有料アプリのみのようです。私のアプリケーションは無料で、アプリ モジュールに課金が含まれています。無料アプリはいつ利用できますか?
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
}
}
}
上記の実装されたメソッドはメインスレッドで呼び出されますか? それともセパレートスレッドですか?
前もって感謝します。