Android 无法在fcm中使用XMPP协议发送上游消息

Android 无法在fcm中使用XMPP协议发送上游消息,android,firebase-cloud-messaging,Android,Firebase Cloud Messaging,先生,我正试图从我的android手机发送上行消息,但失败了。不知道我错在哪里。 这是我的密码: public class MainActivity extends AppCompatActivity { Button button; private AtomicInteger msgId; FirebaseMessaging fm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat

先生,我正试图从我的android手机发送上行消息,但失败了。不知道我错在哪里。 这是我的密码:

public class MainActivity extends AppCompatActivity {
Button button;
private AtomicInteger msgId;
FirebaseMessaging fm;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FirebaseMessaging.getInstance().subscribeToTopic("hello");
    FirebaseInstanceId.getInstance().getToken();
    msgId = new AtomicInteger();
    button = (Button) findViewById(R.id.click);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(),""+msgId,Toast.LENGTH_SHORT).show();
            fm = FirebaseMessaging.getInstance();
            RemoteMessage message=new RemoteMessage.Builder("<my sender id>@gcm.googleapis.com")
                    .setMessageId(Integer.toString(msgId.incrementAndGet()))
                    .addData("my_message", "Hello World")
                    .addData("my_action", "SAY_HELLO")
                    .build();
            fm.send(message);

        }
    });



 }
}

我从一周前开始尝试此功能,但仍然不知道我错在哪里。此外,logcat中没有任何内容。请帮助。

为了优化设备资源,特别是电池,对OnMessageAgent和onSendError的回调是批处理的,因此在发送大约10条上游消息之前,您可能不会收到回调


有关更多信息,请参阅。

为了优化设备资源,特别是电池,对OnMessageAgent和onSendError的回调是分批进行的,因此在发送大约10条上游消息之前,您可能不会收到回调


有关更多信息,请参阅。

您需要有一个运行某些xmpp服务器的应用程序服务器来与Firebase消息服务器进行通信

您需要有一个运行某些xmpp服务器的应用程序服务器来与Firebase消息服务器进行通信

一定要为你的留言设定时间。例如,
newremotemessage.Builder(…).setTtl()
。我没有在FirebaseMessagingService和/或云连接服务器(CCS)参考资料中看到这种行为的记录。

请确保设置消息的生存时间。例如,
newremotemessage.Builder(…).setTtl()
。我没有在FirebaseMessagingService和/或云连接服务器(CCS)参考中看到这种行为的记录。

例如,您必须在消息中设置TTL

   RemoteMessage message=new RemoteMessage.Builder("<my sender id>@gcm.googleapis.com")
                .setMessageId(Integer.toString(msgId.incrementAndGet()))
                .addData("my_message", "Hello World")
                .addData("my_action", "SAY_HELLO")
                .setTtl(86400)
                .build();
RemoteMessage message=new RemoteMessage.Builder(“@gcm.googleapis.com”)
.setMessageId(Integer.toString(msgId.incrementAndGet())
.addData(“我的信息”,“你好,世界”)
.addData(“我的行动”,“说你好”)
.setTtl(86400)
.build();
setTtl(86400)这条线很重要,希望能对你有所帮助


例如,您必须在消息中设置TTL

   RemoteMessage message=new RemoteMessage.Builder("<my sender id>@gcm.googleapis.com")
                .setMessageId(Integer.toString(msgId.incrementAndGet()))
                .addData("my_message", "Hello World")
                .addData("my_action", "SAY_HELLO")
                .setTtl(86400)
                .build();
RemoteMessage message=new RemoteMessage.Builder(“@gcm.googleapis.com”)
.setMessageId(Integer.toString(msgId.incrementAndGet())
.addData(“我的信息”,“你好,世界”)
.addData(“我的行动”,“说你好”)
.setTtl(86400)
.build();
setTtl(86400)这条线很重要,希望能对你有所帮助


感谢您的回答,但发送50条消息后仍无法收到任何回拨。请帮助。感谢您的回答,但发送50条消息后仍无法收到任何回拨。请帮助。