Meego 1.2 Harmattan和QCamera应用

时间:2011-09-02 08:35:41

标签: qt nokia qt-mobility meego meego-harmattan

有没有办法在诺基亚N9(Meego 1.2 Harmattan)中使用带QCamera类的相机,或者我应该使用另一个?

这是我的问题:在诺基亚C6-01(Symbian Anna)上运行正常的简单应用程序在N9上没有​​任何用处。

以下是代码snipets:

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对象之后,我们将在诺基亚C6-01和诺基亚N9上的黑屏上显示一个简单的取景器。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我找到了解决方案! 这是安全问题。正如我发现的那样 - 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>

因此,权限在“凭证”标记的“名称”属性中定义,“for path”标记定义包以执行这些权限。

可以找到更多信息here