Документация
ОС Аврора 5.1.5

Идентификатор приложения

Для успешной работы приложения необходимо создать файл /usr/share/omp-reference-push-example/applicationid и добавить в него идентификатор приложения, который был получен вместе с другими настройками подключения к серверу Сервиса уведомлений. Для этого требуется выполнить на устройстве команду:

echo "идентификатор" > /usr/share/omp-reference-push-example/applicationid

Следует убедиться, что у файла достаточно прав, чтобы пользователь мог читать этот файл. Для выдачи прав файлу можно выполнить на устройстве команду:

chmod 644 /usr/share/omp-reference-push-example/applicationid

В классе Application идентификатор из /usr/share/omp-reference-push-example/applicationid можно считать в методе getApplicationId() следующим образом:

QString Application::getApplicationId() const
{
    QFile applicationIdFile("/usr/share/omp-reference-push-example/applicationid");

    qDebug() << "Try to get clinent id from file " << applicationIdFile.fileName() << " with permissions " << applicationIdFile.permissions();

    if (applicationIdFile.exists() && applicationIdFile.open(QIODevice::ReadOnly))
    {
        auto data = applicationIdFile.readAll().trimmed();
        qDebug() << "Read from file and use " << data << " as application id";
        return data;
    }
    else
    {
        qDebug() << "Did not find a file " << applicationIdFile.fileName() <<  " or can no open it or have no permissions. Use omp_reference_push_example as application id";
        return QStringLiteral("omp_reference_push_example");
    }
}

Альтернативный вариант указания applicationId — это задать его непосредственно в коде приложения.

В методе start() класса Application считывается идентификатор приложения, который затем передаётся push-демону:

bool Application::start(const QStringList &arguments)
{
    auto applicationId = getApplicationId();
    m_client->setApplicationId(applicationId); // Регистрация в Push-демоне
    if (arguments.indexOf(QStringLiteral(”/no-gui”)) == -1)
    {
        startGui();
    }
    return true;
}

Также при старте обрабатываются аргументы командной строки arguments. Отсутствие аргумента /no-gui может служить сигналом запуска графического интерфейса в методе startGui():

void Application::startGui()
{
    if (m_guiStarted)
    {
        return;
    }
    
    m_client->registrate();
    qInfo() << "Starting GUI";
    m_guiStarted = true;
    auto view = AuroraApp::createView();
    view->rootContext()->setContextProperty("ApplicationInstance", this);
    // Здесь можно указать другие настройки графического интерфейса
    view->setSource(AuroraApp::pathTo(QStringLiteral("qml/omp-reference-push-example.qml"))); // Здесь можно указать путь к главной qml-странице
    view->show();
}

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.