×
Namespaces

Variants
Actions
Revision as of 08:12, 15 December 2011 by hamishwillee (Talk | contribs)

Qt Mobility 在Symbian平台的安装

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

测试基于
SDK: Qt_4.7_for_Symbian^3, Qt Mobility 1.1.0

兼容于
平台:
Symbian

文章
flycarl 在 12 Nov 2010 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

Needs-update.png本文需要更新: 如果您发现这篇文章有用,请修复下面的问题,然后从文章中删除 {{ArticleNeedsUpdate}} 模板,以消除此警告。

原因: hamishwillee (13 Dec 2011)
Qt Mobility is included in Qt SDK so no separate installation required. Should be reviewed, and if confirmed that this is not accurate for current Qt versions this should be deleted.

Contents

QtMobility简介

QtMobility是专门用于开发Qt应用的手机功能专有模块。
如果你希望你的Qt应用能够使用到手机的通信录短信定位拍照多媒体传感器网络连接管理等等功能,那么只有标准的Qt库是不够的,还需要另外安装QtMobility,本文讲的就是如何为你的Symbian开发环境提供QtMobility的支持。更多关于Qt Mobility API 的介绍可以在Qt Mobility Project网址找到。

注:如果你使用的是Nokia Qt SDK开发环境,那么QtMobility已经随安装包一起安装,并使用Nokia Qt SDK更新Qt Mobility的版本,在Qt Creator 开发纯的Qt应用时(不含任何Symbian C++ API的 Qt应用),可以跳过本文而不用进行任何额外的安装。

下载安装包和源代码

Qt Mobility 的项目入口在 New-Qt-APIs ,在这里可以找到最新的版本。所有Qt Mobility 的版本可以在连接找到。 Qt Mobility 需要相应版本的Qt 支持参见下表

9 November 2010 Qt 4.7.1
Qt Mobility 1.1.0
Symbian^3开发研究使用 Qt 4.7 for Symbian^3 - developer version
qt-mobility-symbian-1.1.0-symbian3-nokia-signed.sis,

解压安装包

下载qt-mobility-symbian-opensource-<version>.zip解压安装包后关键的文件有几个, 以1.1.0版本为例

qt-mobility-symbian-1.1.0-epoc32-3.1.zip
qt-mobility-symbian-1.1.0-epoc32-3.2.zip
qt-mobility-symbian-1.1.0-epoc32-5.0.zip
qt-mobility-symbian-1.1.0-epoc32-symbian3.zip
qt-mobility-symbian-1.1.0-s60.sis
qt-mobility-symbian-1.1.0-symbian3.sis

features/mobility.prf.template
INSTALL.symbian

INSTALL.symbian是在Symbian 平台上的开发的SDK安装指南。它是一个文本文件,你可以选择任何一个文件浏览器打开阅读。你可以选择不看,接着往下看文章。

安装Qt-Mobility

安装到S60 SDK上

qt-mobility-1.1.0-epoc32-<SYMBIAN_SDK>.zip 对应相应的symbian平台,需要分别解压,解压后都是名字为 epoc32 的目录,将解压后的 epoc32 拷贝到对应SDK目录下的epoc32中。

之前Nokia Qt SDK1.0.0版本 除了epoc32之外,还有一个features/mobility.prf.template 文件需要拷贝到Qt的mkspecs features目录下,默认安装的话路径是C:\Qt4.6.3\mkspecs\features目录下。由于Nokia Qt SDK1.0 在发布时有一个小小的错误,开发者可以参考文章features and some other files for Qt Mobility in the Symbian part are missing 对SDK 进行修复。

拷贝mobility.prf文件

将 <QTMOBILITYDIR>/features/mobility.prf.template 文件拷贝成 QTDIR/mkspecs/features/mobility.prf。
可在编译环境下运行'qmake -v' 来查看目前的Qt 目录。
mobility.prf的作用是:在pro文件里声明某个Qt Mobility API 后, qmke 通过 QTDIR/mkspecs/features/mobility.prf 文件来配置Mobility需要引用的头文件及其路径。

安装到手机上

  • 前提:手机上需要安装Qt 4.7
  • 手机上安装Qt-Mobility支持库,只需将qt-mobility-symbian-1.1.0-s60.sis文件安装到手机即可,此安装包适合S60 FP1、FP2和5th。
  • 将qt-mobility-symbian-1.1.0-symbian3.sis文件安装到symbian^3手机上。

注意这里QT Mobility 1.1.0的一个bug,上述文件不能安装,改为安装qt-mobility-symbian-1.1.0-symbian3-nokia-signed.sis

可以写Qt-Mobility了

不想从头开始写就从下载的源代码里的example里找个工程来编译看看。 编译命令很简单 qmake;make 就可以了。如果想运行的话执行make run 需要注意的是绝大部分的.pro里都会include一个example.pri文件,把那一行删掉或注释掉,它是用于编译整个QtMobility源码系统和所有example时的一些共用选项,我们只编一个应用不需要它,否则会出错。 要用到QtMobility模块的话, .pro里都会有一句”Qt+=mobility”,这就是要用到mobility.prf文件的地方了。

如果你不喜欢用命令行方式编译的话,从 Carbide 或 QtCreator 中引入一个QtMobility example 工程也能正常编译。

想运行到手机上?

没问题,命令行方式的话,在执行qmake后,执行make release-gcce ; make sis 命令就会给你编出一个.sis文件来。直接把.sis文件拷贝到手机上安装就可以了。不过因为QtMobility需要比较高级的一些系统权限,你会发现有些应用利用自签名没法安装,那么你需要将你的应用传到symbiansigned.com上去做个签名,然后下载,就能装到手机上了。

Qt Moblity API 需要的能力

Domain Symbian Capabilities
Bearer Management ReadUserData NetworkServices (NetworkControl for QNetworkSession::stop())
Contacts ReadUserData WriteUserData
Location Location
Multimedia UserEnvironment ReadUserData WriteUserData ReadDeviceData WriteDeviceData
Messaging LocalServices ReadUserData WriteUserData NetworkServices UserEnvironment ReadDeviceData WriteDeviceData
Publish And Subscribe Capability depends on P&S value being read/written. API itself doesn't require any capability.
Service Framework No capabilities requried by itself, the plugins may have capability requirements.
Sensor ReadDeviceData
System Information LocalServices ReadUserData WriteUserData NetworkServices UserEnvironment Location ReadDeviceData
Versit No additional capabilities required.
Document Gallery No capabilities at this stage.
Organizer ReadUserData WriteUserData
Tactile Feedback No capabilities at this stage.

相关文章

设置Qt Mobility API 环境Quick Start

450 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×