クライアントでのプッシュハンドラ初期化処理で、処理結果を受け取るクラスを実装することで、メッセージおよびエラー通知を受け取ることができます。
PushReceiverの派生クラスを実装し、Pushのクラス生成時に指定してください。メッセージ受信時、エラー発生時はcallbackメソッドが呼び出されます。
なお、メッセージ受信が可能なのは、クライアントアプリケーションが動作中(フォアグラウンド、または、バックグラウンド)状態の場合です。
IMAPS プッシュの場合の例を以下に示します。
// Pushのエラー通知クラス public class pReceiver extends PushReceiver{ @Override public void callback(int result, Bundle data) { // ここに通知されます } } // Pushの初期化 pReceiver prec = new pReceiver(); PushManager pm = new PushManager(context, prec); pm.bind(PushService.class);
通知される内容は以下のとおりです。
通信情報
状態 |
result |
Bundle |
|
---|---|---|---|
キー名:ERROR_BUNDLE_CODE_KEY |
キー名:ERROR_BUNDLE_DATA_KEY |
||
自分でBrokerを切断 |
RESULT_CONNECT_FAIL |
ERROR_CODE_NOMAL |
null |
Brokerネットワーク利用不可 |
RESULT_CONNECT_FAIL |
ERROR_CODE_NETWORK_NOT_AVAILABLE |
ConnectException |
Broker接続不可(タイムアウト) |
RESULT_CONNECT_FAIL |
ERROR_CODE_SOCKET_TIMEOUT |
SocketTimeoutException |
Brokerアクセス権限なし(内部エラー) |
RESULT_CONNECT_FAIL |
ERROR_CODE_NOACCESS_AUTHORITY |
null |
SSL認証エラー |
RESULT_CONNECT_FAIL |
ERROR_CODE_SSL_HANDSHAKE_FAILED |
SSLHandshakeException |
Broker停止 |
RESULT_CONNECT_FAIL |
ERROR_CODE_BROKER_SEVERANCE |
EOFException |
ネットワーク切断 |
RESULT_CONNECT_FAIL |
ERROR_CODE_NETWORK_LOST |
SocketException |
原因不明のエラー |
RESULT_CONNECT_FAIL |
ERROR_CODE_UNKNOWN |
上記以外の例外の場合 |
Broker接続成功 |
RESULT_CONNECTED |
- |
- |
ID払出し成功 |
RESULT_REG_SERVER_SUCCESS |
- |
- |
ID払出しサーバとの接続失敗 |
RESULT_REG_SERVER_CONNECT_FAIL |
- |
- |
ID払出し失敗 |
RESULT_REG_SERVER_FAIL |
- |
- |
プッシュサービスとのbindに成功した |
RESULT_BIND_SERVICE_SUCCESS |
- |
- |
プッシュサービスとのunbindに成功した |
RESULT_UNBIND_SERVICE_SUCCESS |
- |
- |
各定義値はPushDefineクラスに定義
メッセージ受信
状態 |
result |
Bundle |
---|---|---|
キー名:MESSEAGE_BUNDLE_PAYLOAD_KEY |
||
IMAPSプッシュメッセージ受信 |
RESULT_RECEIVE_MESSAGE |
byte[ ] ペイロード |
各定義値はPushDefineクラスに定義