In-App BillingでIllegalArgumentExceptionでおちる


お久しぶりです。職場が変わり、働き方がだいぶ違ったのでなかなか記事を書く時間がありませんでした。
ちゃんと生きていますので、ゆっくりマイペースで投稿していきます。

アプリ内アイテムで課金機能を実装しました。
それで、購入ボタンを押したときに一部のAndroid5.0以降の端末で、

Service Intent must be explicit: Intent { act=com.android.vending.billing.InAppBillingService.BIND }

とログが出て落ちてしまう場合がありました。

これは、決済モジュールへのコネクションを作成するときの、バインドのやり方に原因があります。

this.bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), this.serviceConnection, Context.BIND_AUTO_CREATE);

このようにバインドしていませんか?
この場合、下記のようなバインドのやり方に変更すると落ちなくなります。

Intent intent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
intent.setPackage("com.android.vending");
this.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
カテゴリー: Android, Java, プログラム

コメントを残す

メールアドレスが公開されることはありません。