Android GCM通知到达设备但未显示

时间:2018-01-12 02:03:21

标签: android google-cloud-messaging

我在GCM上发了一条消息,因为我看到在Android Studio Console上登录,它就会到达我的设备。

从我的服务器发出的消息格式为:

{
    "aps": {
        "alert": {
            "title": "Alert Title",
            "body": "Alert body with detailed description."
        },
        "content-available": false
    },
    "data": {
        "title": "custom",
        "user-id": "123",
        "user-age": "44",
        "parameters": [{
            "parameter": "1"
        }]
    }
}

我在iOS上有一个非常相似的东西,通知操作系统处理通知的显示,然后当用户点击通知时,我会调用一个方法进行进一步处理,即我使用'数据& #39;键。

QByteArray* qbyte;
QThread* thread;
PlayAudio* audioWorker;

MainWindow::startSound()
{
    QFile soundFile;
    soundFile.setFileName("/home/sounds/sound.wav");
    qbyte = new  QByteArray(soundFile.readAll());
    soundFile.close();
    thread= new QThread;
    audioWorker= new PlayAudio(qbyte, 5);
    audioWorker->moveToThread(thread);
    connect(thread, SIGNAL(started()), audioWorker, SLOT(play()));
    connect(audioWorker, SIGNAL(finished()), thread, SLOT(quit()));
    connect(audioWorker, SIGNAL(finished()), audioWorker,SLOT(deleteLater()));
    connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
    connect(thread, SIGNAL(finished()), this, SLOT(donePlaying()));
}
MainWindow::donePlaying()
{
    //do stuff
}

我的理解,也许是错误的,如果我包含“通知”,键入我的消息然后Android将在系统托盘中显示通知;就像在iOS上一样,如果您包含“警报”,操作系统会显示通知。键。

我说错了吗?

1 个答案:

答案 0 :(得分:0)

  

当应用在后台时,通知消息将传递到通知托盘。对于前台的应用程序,消息由这些回调处理,如果是android

,则为onMessageReceived()

如果您是应用程序在前台,您需要处理通知的显示,操作系统将仅在应用程序处于后台时显示通知。有关详细信息,请参阅official documentation