首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用qt-android获取通知

使用qt-android获取通知
EN

Stack Overflow用户
提问于 2014-08-19 19:10:20
回答 1查看 2.3K关注 0票数 2

我希望从我的应用程序中获得使用QWidget的通知,我在qt示例中找到了这位考官,它在QML中,我希望在QWidgets中使用它,在QWidget中使用代码,我对它做了如下修改:

notificationclient.h

代码语言:javascript
复制
#ifndef NOTIFICATIONCLIENT_H
#define NOTIFICATIONCLIENT_H

#include <QObject>

class NotificationClient : public QObject
{
    Q_OBJECT
public:
    explicit NotificationClient(QObject *parent = 0);

    void setNotification(QString notification);
    QString notification() const;

signals:
    void notificationChanged();

private slots:
    void updateAndroidNotification();

private:
    QString m_notification;
};

#endif // NOTIFICATIONCLIENT_H

notificationclient.cpp

代码语言:javascript
复制
#include "notificationclient.h"

#include <QtAndroidExtras/QAndroidJniObject>

NotificationClient::NotificationClient(QObject *parent)
    : QObject(parent)
{
    connect(this, SIGNAL(notificationChanged()), this, SLOT(updateAndroidNotification()));
    m_notification = "";
}

void NotificationClient::setNotification(QString notification)
{
    if (m_notification == notification)
        return;

    m_notification = notification;
    emit notificationChanged();
}

QString NotificationClient::notification() const
{
    return m_notification;
}

void NotificationClient::updateAndroidNotification()
{
    QAndroidJniObject javaNotification = QAndroidJniObject::fromString(m_notification);
    QAndroidJniObject::callStaticMethod<void>("org/qtproject/example/notification/NotificationClient",
                                       "notify",
                                       "(Ljava/lang/String;)V",
                                       javaNotification.object<jstring>());
}

供主班使用:

代码语言:javascript
复制
notification = new NotificationClient(this);

为了得到通知:

代码语言:javascript
复制
void myclass::on_btn_clicked(){
notification->setNotification("hello world");
}

并遵循.pro文件中的代码:

代码语言:javascript
复制
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
QT       += core gui androidextras

on_btn_clicked()调用程序突然退出时

注意:这是java代码和我用我的应用程序包设置了包名

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 21:08:19

我解决了这个问题,我们应该在AndroidMainifest.xml中将这个属性添加到活动标记中。

代码语言:javascript
复制
android:name="MY.APP.PACKAGE.NAME.NotificationClient"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25391201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档