0

Firebase Cloud Messaging サービスから ack メッセージを受信すると、addAsyncStanzaListner が呼び出されます。ドキュメントに従って、このメッセージを確認する必要があります。私が抱えている問題は、受信したメッセージ スタンザ内に到着する JSON オブジェクト内の "message_type" "key"/"value" ペアに到達できないことです。この重要な値/ペアへのアクセスを手伝っていただけませんか。Smack Library 4.1 を使用しています。このセットアップについてこの投稿の回答に従っていますが、どういうわけかうまくいきません: GCM XMPP Server using Smack 4.1.0

コードは次のようになります。

other_connection.addAsyncStanzaListener(new StanzaListener() {
@Override
public void processPacket(Stanza packet) throws    SmackException.NotConnectedException {
//how should i convert this stanza into a message stanza
//I have tried Message message = (Message)packet;   IT DOESNT WORK
//I have tried getting the extension with the GCM Namespace. It doesnt
//return a json string       
4

2 に答える 2

0

コードでは、Stanza を Java オブジェクトとして受け取るだけです。

Stanza には XML を出力するメソッドがあります。

必要に応じて、このメソッドを使用して JSON を取得できます。カスタム機能を追加するだけです。

この例に従って

コードは次のようになります。

@Override
public void processPacket(Stanza packet) throws    SmackException.NotConnectedException {
    JSONObject jsonObj = XML.toJSONObject(packet.toXML());
    String json = jsonObj.toString();
//foo
于 2016-08-04T09:43:34.400 に答える