2016-06-22 11 views
0

IAB(In App Billing)アプリケーションを作成しました。プレミアム購入はGoogleダッシュボードに送信され、そのアイテムの請求書が表示され、ユーザーはこのアイテムを2回購入することはできません。これは大丈夫です。Google In App BIllingはgetPurchasesを呼び出すときにNullを返します

しかし、下のコードを使用することによって、私はpremiumPurchaseは常にヌルあるので、ユーザは、プレミアムであるかないことを理解することはできません。私は、デバイスを再起動し、Googleのキャッシュがプレイオフにして、私は私が正しいアカウントでログインしていることを確信していた

mHelper.queryInventoryAsync(new IabHelper.QueryInventoryFinishedListener() { 
      public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 

       if (mHelper == null) return; 

       if (result.isFailure()) { 

        return; 
       } 


       Purchase premiumPurchase = inventory.getPurchase(SKU_PREMUIM); 

       if(premiumPurchase!=null) { 
        //Toast.makeText(getApplicationContext(),"permuim",Toast.LENGTH_SHORT).show(); 

        lblIsPremuim.setText("You are Premium"); 
       } 
       else{ 
        lblIsPremuim.setText("You are Not Premium"); 
        Toast.makeText(getApplicationContext(),"not permuim",Toast.LENGTH_SHORT).show(); 
       } 

      } 
}); 

(私は、セットアップ終了リスナー上で、このメソッドを呼び出しています)。 Base64の公開鍵は間違いなく正解であり、この問題については言及されているが解決策は見つけられていないStack-Over-Flowの投稿をすべて読んだ。私はアップロードされたアプリと同じバージョン名とバージョンコードと同じキーストアを使用しています。私はAndroidManifest.xmlファイル操作することで問題を解決していたいくつかの日後の最後

答えて

0

1)私は、以下の権限を削除していた:(I課金許可と競合していると思っていたので)、しかし、おそらく次のことができますこの行を離れる。

<uses-permission android:name="android.permission.INTERNET" /> 

2)私は、このようなラインが私のAndroidManifest.xmlであることを通知:

<uses-sdk 
     android:minSdkVersion="21" 
     android:maxSdkVersion="9" /> 

は、したがって、上記の文で、minは、それは論理的な最大のバージョンよりも多くのではありませんので、私は変更されましたこれ以下の:

その後
<uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 

私はプロジェクトをきれいにし、再構築し、また、私は私のすべての購入を得ることができますdevice.thenを再起動します...

非常に重要 更新:Googleストアストアからサインアウトする必要があります。

関連する問題