Приложение Meego 1.2 Harmattan и QCamera - PullRequest
2 голосов
/ 02 сентября 2011

Есть ли способ работы с камерой с классом QCamera в Nokia N9 (Meego 1.2 Harmattan) или мне следует использовать другой?

Вот моя проблема: простое приложение, которое отлично работает на Nokia C6-01 (Symbian Anna) ничего не делает для N9.

Вот фрагменты кода:

testmobile.pro

<...>
CONFIG += mobility
MOBILITY += multimedia
LIBS += -lQtMultimediaKit
<...>

mainwindow.h

class MainWindow : public QWidget
{
    Q_OBJECT
    <...>
    private:
        QCamera* camera_;
        QGraphicsView *view;
        QGraphicsVideoItem *videoItem;
        QGraphicsScene *scene;
    <...>
}

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent)
: QWidget(parent)
{
<...>
    camera_ = new QCamera;
    view = new QGraphicsView(this);
    scene = new QGraphicsScene(view);
    videoItem = new QGraphicsVideoItem;
    view->setScene(scene);
    scene->addItem(videoItem);

    QVBoxLayout *lay = new QVBoxLayout(this);
    lay->addWidget(view);
    this->setLayout(lay);
    view->show();
    camera_->setViewfinder(videoItem);

    camera_->start();
}

<...>

Итак, после создания и показа объекта MainWindow мы увидим простой видоискатель на Nokia C6-01 и черный экран на Nokia N9.

Любойидеи?

1 Ответ

4 голосов
/ 05 сентября 2011

Я нашел решение! Это была проблема безопасности. Как я обнаружил - у Meego есть аналог «возможностей» Symbian. Это называется токены безопасности AEGIS. Итак, чтобы запросить разрешение на работу с камерой (или любой другой), вам нужно добавить файл your_application_name.agis в папку «qtc_packaging / debian_harmattan» вашего проекта. В моем случае этот файл состоял из:

<aegis>
    <request>
        <credential name="GRP::video"/>
        <credential name="GRP::pulse-access"/>
        <for path="/opt/testmobile/bin/testmobile"/>
   </request>
</aegis>

Таким образом, разрешения определены в свойстве «name» тега «credential», а тег «for path» определяет пакет для выполнения этих разрешений.

Более подробную информацию можно найти здесь

...