Qt Meego 1.2 Harmattan和QCamera应用

Qt Meego 1.2 Harmattan和QCamera应用,qt,nokia,qt-mobility,meego,meego-harmattan,Qt,Nokia,Qt Mobility,Meego,Meego Harmattan,有什么方法可以使用诺基亚N9(Meego 1.2 Harmattan)中的QCamera类照相机,还是我应该使用另一种 我的问题是:在诺基亚C6-01(Symbian Anna)上运行良好的简单应用程序在N9上没有任何用处 以下是代码: testmobile.pro <...> CONFIG += mobility MOBILITY += multimedia LIBS += -lQtMultimediaKit <...> 配置+=移动性 移动+=多媒体 LIBS+=

有什么方法可以使用诺基亚N9(Meego 1.2 Harmattan)中的QCamera类照相机,还是我应该使用另一种

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

以下是代码:

testmobile.pro

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

配置+=移动性
移动+=多媒体
LIBS+=-LQT多媒体套件
主窗口

class MainWindow : public QWidget
{
    Q_OBJECT
    <...>
    private:
        QCamera* camera_;
        QGraphicsView *view;
        QGraphicsVideoItem *videoItem;
        QGraphicsScene *scene;
    <...>
}
class主窗口:公共QWidget
{
Q_对象
私人:
QCamera*摄像机;
QGraphicsView*视图;
QGraphicsVideoItem*视频项;
qgraphicscene*场景;
}
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::MainWindow(QWidget*父项)
:QWidget(父项)
{
摄像头=新的QCamera;
视图=新的QGraphicsView(本);
场景=新的Qgraphicscene(视图);
videoItem=新的QGraphicsVideoItem;
查看->设置场景(场景);
场景->添加项(视频项);
QVBoxLayout*lay=新的QVBoxLayout(本);
lay->addWidget(视图);
此->设置布局(布局);
查看->显示();
摄像头->设置取景器(视频项目);
摄像头->开始();
}
因此,在构建并显示主窗口对象之后,我们将在诺基亚C6-01上使用一个简单的取景器,在诺基亚N9上使用黑屏

有什么想法吗?

我找到了解决办法! 这是安全问题。正如我发现的,Meego与Symbian的“功能”类似。它被称为宙斯盾安全令牌。 因此,要请求使用camera(或任何其他)的许可,您应该将您的应用程序名称.agis文件添加到项目的“qtc_packaging/debian_harmattan”文件夹中。 就我而言,该文件包括:

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