2012-07-30 5 views
11

を再生する私の問題です: -一覧は、次のGoogleアカウントに反対

  1. それは、プログラムを通じて、Googleのプレイを通じて自分のGoogleアカウントに対して、ユーザーがインストールしたアプリケーションのリストを取得することは可能です任意のapiの使用?私は現在、デバイスにインストールされているアプリのリストについては求めていませんが、インストールされているアプリのリストについては質問していません。

私がある、私のアプリでシナリオを考えていますように私は、上記の解決策を必要とする:

  • 私は最初の3ヶ月間無償で利用者への私のアプリを提供したいです、ユーザーがアプリをアンインストールしてからもう一度インストールすると3か月後に、ユーザーがアプリをもう一度インストールしたことをGoogle Playの任意のAPIから検出したい(無料の使用はできません)。 Please note that I don't want to use any web service to store the account id & device id of the user at my side.
+0

見ます質問/ 10661434/do-google-play-have-an-api – Ronnie

答えて

5

オプション2では、SDカードにファイルを作成できます。これは、ユーザーがアンインストール/インストールするときにそこに残ります。しかし、ユーザーはいつでも特別なファイルを削除することができます。あなたがあなたの側で何かをしない限り、ユーザがあなたのアプリを以前に使ったかどうかは決して分かりません。


、完全に必ずそれをオンラインストアに: あなたのアプリをインストールしDEVICE_IDのリストを保持している非常に単純なデータベースを持っている必要があります。 さらにこのデータベースを満たすWebページ。 あなたのアプリケーションでは、このウェブページをダウンロード/開くことで、ウェブページがDBを埋め尽くします。

App> WebClient(またはその他)http://www.example.com/registerDevice.php?device_id=を開く。 PHPサイトがデータベースを埋めます。

あなたのアプリは、現在のデバイスがこのアプリケーションをインストールしている場合、データベースをチェックする必要があります。あなたは同じPHPを介してこれを行うことができますし、応答を確認します。たとえば、「ok」や「not ok」など何かを返すことができます。

+1

これは情報を格納する方法としては非常に信頼性が低いでしょう。 Sdcardは、フォーマットされ、置き換えられ、ファイルが削除され、3ヶ月のタイムフレームでさらにそうする可能性があります。 –

+0

返信いただきありがとうございます@PoweRoy。しかし、私の側で何をしなければならないか、私に教えてください。 –

+0

@mice:確かに非常に信頼できないです。 – RvdK

3

最も簡単な方法は、ユーザーが最初にアプリを実行したときにアカウントを取得し、その詳細をあなたに送信することです。 How to get the Android device's primary e-mail address

これは、アプリケーションの最初の開始時にデータベースにチェックインするためにもう1行追加する必要があります。

EDIT:非Webソリューションの場合は、単にあなたのアプリの起動にタイマーを追加します。

schedule(TimerTask task, Date when) 

タスクがに、あなたが与えることを望む一定期間後にトークンを追加する必要があります

最後に、上記のように、その特定のファイルの電話機のメモリにチェックバックを追加して、ユーザーがアプリを使用しているかどうかを確認します(詳細については、アカウントの詳細を参照してください)前。

問題携帯電話のメモリに基づいたあらゆる種類の認証では、トークンを見つけたら簡単に削除して、再度使用することができます。

+0

@bernlimが返信に感謝します。しかし、あなたは私の側でユーザーのアカウントIDとデバイスIDを格納するために、どのWebサービスも使用したくないという点に注意してください。「 –

+0

あなたのために編集されました! – bernlim

0

特定の実装このデバイスを試してみてください。もちろん

PackageManager packageManager = getContext().getPackageManager(); 
List<ApplicationInfo> applications = packageManager.getInstalledApplications(
     PackageManger.GET_UNINSTALLED_PACKAGES); 
// retrieves some information about all applications (even uninstalled ones) 
// which have data directories 

ユーザーがデバイスを置き換える場合は、この方法では動作しません。しかし、Webサービスを使用する必要はありません。

0

ハッシュされたデバイスIDとユーザーのGoogle IDのデータベースをサードパーティのサーバーに保存することで、これを使用できます。 http://code.google.com/p/android-market-api/ これも役立つことができます:http://stackoverflow.com/ また、あなたが検索を開始することができます場所ですhttp://android-developers.blogspot.de/2011/03/identifying-app-installations.html