2012-01-04 15 views
3

Androidマーケットで最初のアプリを提出した後、私は奇妙な問題が発生しています。このアプリには、リリース前に完全にテストされているアプリ内購入機能があります(少なくとも私はそう考えていました)。Androidアプリ内購入の問題

私は同様の質問が既に存在するかもしれないが、私はそれらを見つけられていないことを認識しており、わずかな言葉で私の問題を記述することは非常に困難です。

は、a))は、Androidマーケット
Bから我々のアプリをダウンロードAndroidマーケット
c)において、OPENリンクを介してダウンロード後にアプリを開く取る購入を開始します。

は、問題は、ユーザーがときに表示されますユーザーはAndroidマーケットに戻ります。
d)は、次に購入

をキャンセルまたは完了し、次のいずれかの代わりに我々のアプリに戻る

、ユーザーがアプリを開くためのボタンで我々のアプリの説明が表示され、Androidマーケット(に戻ります等)。 LogCatでは、Android Marketから購入Observerにレスポンスコードが送信されますが、現在(バックグラウンドにある)アプリはコードを受信しないので、Android Marketからの応答を永遠に待っています。実際には2つの問題があります。購入後にユーザーがAndroid Market画面に戻ってくることは意図的ではないからです。

ユーザーがAndroidマーケット以外のアプリ(ホーム画面など)を開くとすべて正常に動作します。オブザーバーは、キャンセルまたは完全な応答コードのいずれかを受け取ります。

私たちは、Google独自のアプリ内課金の例を基盤としています。

これはややわかりやすいものですが、

ありがとうございます事前にありがとうございます

答えて

5

すべて、私はついに自分自身の答えを見つけました。

私は、任意のコードを使用せずに解決策を説明してみます:)私の活動がアクティブなとき

PurchaseObserverインスタンスにのみ使用可能です - それは、上記の例では、アクティブではありません。 PurchaseObserverは購入時にPurchaseObserverが存在することを確信できないことを知るためにのみ、OrderObserverがデータベース内に注文を保存する場所であると考えるよう間違いを犯しました。代わりにObserverを使用してUIを変更し、注文情報とデータベースをResponseHandlerで処理します。これはAndroidマーケットでの購入時に常に呼び出されます。

購入時にユーザーがアプリの代わりにAndroidマーケットにスローされるのは間違いだと思いますが(ユーザーがAndroidマーケットを通じてアプリを起動した場合のみ)、解決策や説明が見つからないようですこの。

これは、Androidマーケットでアプリをせずに、テストしたり、問題を再現することは不可能であるところで - 私はこの説明は、あなたたちは私が作った同じ間違いをしない助けることができることを望む;)