クライアントでのプッシュハンドラ初期化処理で、処理結果を受け取るクラスを実装することで、メッセージおよびエラー通知を受け取ることができます。
PushReceiverの派生クラスを実装し、Pushのクラス生成時に指定してください。メッセージ受信時、エラー発生時はcallbackメソッドが呼び出されます。
なお、メッセージ受信が可能なのは、クライアントアプリケーションが動作中(フォアグラウンド、または、バックグラウンド)状態の場合です。
GCMプッシュの場合の例を以下に示します。
.... // Pushのエラー通知クラス public class pReceiver extends PushReceiver{ @Override public void callback(int result, Bundle data) { // ここに通知されます } } //GCMにregistraionIDを要求 pReceiver prec = new pReceiver(); GcmRegister gcm = GcmRegister.getInstance(this, prec); gcm.regist(SENDER_ID); // SENDER_IDは、Googleの開発者向けのWebサイトでGCM向けのものを入手;
通知される内容は以下のとおりです。
PushReceiver :: callback(int result, Bundle data)
に通知される内容は以下のとおりです。
通信情報
状態 |
result |
Bundle |
|
---|---|---|---|
ID登録 |
RESULT_REG_SERVER_GCM_SUCCESS |
- |
- |
ID登録サーバとの接続失敗 |
RESULT_REG_SERVER_GCM_CONNECT_FAIL |
- |
- |
ID登録失敗 |
RESULT_REG_SERVER_GCM_FAIL |
- |
- |
各定義値はPushDefineクラスに定義
メッセージ受信
状態 |
result |
Bundle |
|
---|---|---|---|
キー名:MESSAGE_BUNDLE_GCM_MESSAGETYPE_KEY |
キー名:MESSEAGE_BUNDLE_PAYLOAD_KEY |
||
GCMメッセージ受信 |
RESULT_RECEIVE_GCM_MESSAGE |
GoogleCloudMessaging.MESSAGE_TYPE_DELETED (注) |
Bundle ペイロード |
GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE (注) |
|||
GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR (注) |
各定義値はPushDefineクラスに定義
注) 以下の文字列が通知されます。
com.google.android.gms.gcm.GoogleCloudMessaging
public static final String MESSAGE_TYPE_DELETED Constant Value: "deleted_messages"
public static final String MESSAGE_TYPE_MESSAGE Constant Value: "gcm"
public static final String MESSAGE_TYPE_SEND_ERROR Constant Value: "send_error"