クライアントでのプッシュハンドラ初期化処理で、処理結果を受け取るクラスを実装することで、メッセージおよびエラー通知を受け取ることができます。
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クラスに定義