Androidアプリ開発

Google Play Billing Library8対応

この記事は約10分で読めます。
記事内に広告が含まれています。
スポンサーリンク

この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Androidのアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
(これからAndroidのアプリ開発やJavaでの開発を始めたい方への案内は、記事の最後で紹介します)

この記事のテーマ


Billing Library8で変更になったQueryProductDetailsResultに対応する

Billing Library7までの移行についてはこちら(↓↓↓)

QueryProductDetailsResultの対応

Billing7からBilling8に移行する場合、QueryProductDetailsResultの変更の影響でビルドエラーになります。
今回はビルドエラーの対応方法を紹介します。

QueryProductDetailsResult

Java対応前コーディング(参考)

購入可能リスト取得でqueryProductDetailsAsyncを使用して、ProductDetailsを取得します。

    private final List<ProductDetails> arrayProductDetails = new ArrayList<>();
    :
    // 購入可能リスト取得 //
    public void queryProductDetailsAsync(String product, OnSkuDetailsResponseListener onSkuDetailsResponseListener) {
        List<QueryProductDetailsParams.Product> productList = new ArrayList<>();
        productList.add(QueryProductDetailsParams.Product.newBuilder()
                .setProductId(product)
                .setProductType(BillingClient.ProductType.INAPP)
                .build());
        QueryProductDetailsParams.Builder params = QueryProductDetailsParams.newBuilder();
        params.setProductList(productList);
        billingClient.queryProductDetailsAsync(params.build(), (billingResult, list) -> {
            // List<ProductDetails>
            arrayProductDetails.addAll(list);
            onSkuDetailsResponseListener.skuDetailsResponse(billingResult.getResponseCode());
        });
    }
    :

queryProductDetailsAsyncから返却されるQueryProductDetailsResultListProductDetails>に展開します。

Java対応後コーディング

QueryProductDetailsResultからProductDetailsUnfetchedProductを取得できるようなりました。
ProductDetailsgetProductDetailsListで取得します。

    private final List<ProductDetails> arrayProductDetails = new ArrayList<>();
    :
    // 購入可能リスト取得 //
    public void queryProductDetailsAsync(String product, OnSkuDetailsResponseListener onSkuDetailsResponseListener) {
        List<QueryProductDetailsParams.Product> productList = new ArrayList<>();
        productList.add(QueryProductDetailsParams.Product.newBuilder()
                .setProductId(product)
                .setProductType(BillingClient.ProductType.INAPP)
                .build());
        QueryProductDetailsParams.Builder params = QueryProductDetailsParams.newBuilder();
        params.setProductList(productList);
        billingClient.queryProductDetailsAsync(params.build(), (billingResult, list) -> {
            // List<ProductDetails>
            arrayProductDetails.addAll(list.getProductDetailsList());
            onSkuDetailsResponseListener.skuDetailsResponse(billingResult.getResponseCode());
        });
    }
    :

getProductDetailsListProductDetailsを取り出して、ListProductDetails>に展開します。

今回は、ここまでです。

このスペックでこの値段、アリですね♪

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちら
から、お願いいたします♪

ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

初めての Android のアプリ開発では、アプリケーション開発経験がない方や、
アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、
書籍などによる独学ではアプリ開発できるようになるには、かなりの時間がかかります。
オンラインスクールでの習得をおススメします。

未経験者からシステムエンジニアを目指すのに最適です。まずは無料相談から♪

未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪

スポンサーリンク
msakiをフォローする
スポンサーリンク

コメント欄

タイトルとURLをコピーしました