0

アプリ内課金モジュールを開発しています。しかし、まだいくつかの問題があります。

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
        }
    }
}

上記の実装されたメソッドはメインスレッドで呼び出されますか? それともセパレートスレッドですか?

前もって感謝します。

4

1 に答える 1

0

私の知る限り、LVLとアプリ内課金は互いに独立しています。彼らが共有する唯一のことは、彼らが検証のためにあなたの公開鍵を使用するということです。com.android.vending.BILLINGアプリ内課金の場合、アプリは許可を得て作成する必要があります。

請求リクエストは、電話の別のアプリ(電話に応じて、AndroidマーケットまたはMyApps)に非同期で送信されます。リクエスト発行メソッドがブロックされるとは思わないので、UIスレッドまたはバックグラウンドスレッドで実行しても問題ありません。応答のコールバックがUIスレッドにあるかどうかはわかりませんが、疑わしいです(LVL用ではないため)。

于 2011-05-18T03:42:28.337 に答える