ユーザー アカウントから GCM 情報を削除できるように、Google GCM 応答 (つまり、NotRegistered エラー) を取得する方法を見つけようとしています。
GCM Archetecture の概要(GCMからのデバイスの登録解除に関して) から、「GCM サーバーがデバイスにメッセージを送信しようとし、デバイスがアプリケーションがアンインストールされているか、ブロードキャストがないことを応答した場合にのみ登録解除されます」と述べています。受信者は com.google.android.c2dm.intent.RECEIVE インテントを受信するように構成されています。その時点で、サーバーはデバイスを未登録としてマークする必要があります (サーバーは NotRegistered エラーを受け取ります)。
Android 用 Mono の PushSharp 内。ユーザーにメッセージを送信しようとして、代わりに Google から「NotRegistered エラー」を受け取ったときに Google の応答を取得するにはどうすればよいですか? メッセージを送信するには、次のコードがあります。
var push = new PushService();
// setup channel settings: sender id, access key, registration package name
var settings = new GcmPushChannelSettings(<>, <>, <PACKAGE>);
push.StartGoogleCloudMessagingPushService(settings);
var android = NotificationFactory.AndroidGcm();
android = android.ForDeviceRegistrationId(GCM_Id);
push.QueueNotification(android.WithJson("{\"alert\":\"" + message + "\",\"URL\":\"" + URL + "\"}"));
1. メッセージが送信された 2. アプリがアンインストールされた 3. NotRegistered エラーが発生したため、ユーザー アカウントから GCM ID を削除できるかどうかを知るために、Google からの応答を取得するにはどうすればよいですか?
これについて私が得ることができる助けを楽しみにしています。上記のコードは、PushSharp for Mono for Android (MonoDroid) を使用しており、ユーザーにメッセージを送信する際に問題なく動作します。PushSharpは素晴らしいので、GCM 経由でユーザーにメッセージを送信する場合に強くお勧めします。