2012-01-21 8 views
0

ユーザに通知をプッシュするc2dmを実装しています。ユーザーは最初に「オプトアウト」できるようにしたいと考えています。オプトインした場合は、デバイスを登録し、私たちのサーバーにIDを送信して、後で配信するために保管し、それを特定のデバイスIDで追跡します。ユーザがc2dmメッセージをオプトアウトする方法

問題は、アンドロイドにデバイスIDを取得する信頼できる方法ではないようです。私が読んだことのすべては、「単にアプリケーションの最初の起動時にguidを生成する」と言います。これは問題ありませんが、ユーザーがアプリを起動し、アプリをアンインストールしてから再インストールしてからオプトアウトすると、古いデバイスを削除する方法はありません(2番目のデバイスのデバイスIDは新しい)。

私はテストしました。古いc2dmの登録IDは、アンインストールしてから再インストールしても機能します。

提案がありますか?他のユーザーがユーザーに通知のオプトアウトを許可する方法どのようにデバイスを追跡していますか?

答えて

0

アプリの最初の実行では、C2DMメッセージを受信するかどうかをユーザーに確認し、その回答をサーバーに送信できます。次に、のみ、C2DMメッセージを必要なデバイスに送信します。

GUIDの代わりに、私は彼らの関連性を調べることにしましたAndroidマーケットアカウント(すなわち電子メールアドレス)。この方法では、同じAndroidマーケットアカウントを使用していることを前提とした再インストールでは何も変更されません。

1

デバイスIDを持つのはいいですが、オプトアウトを処理する必要はありません。サーバーからC2DMメッセージを送信するときは、登録IDを含めます。次に、デバイスはメッセージを受信すると、配信された登録IDと登録IDが何であるかを比較することができます。

一致する場合は、通知を表示します。一致しない場合は、サーバーにpingを送信して、その登録IDをオプトアウトするように指示します。

関連する問題