Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

目前使用 Bearer API 及 Location API 需要注意的问题

From Wiki
Jump to: navigation, search
Article Metadata

测试基于
SDK: Qt Mobility 1.1.0

兼容于
平台:
Symbian

文章
zhouhl 在 25 Nov 2010 创建
最后由 hamishwillee 在 11 Oct 2012 编辑


Contents

引言

最新的Qt Mobility 1.1.0现在已经正式发布Qt Mobility download。 但是我们会发现其自带的一些Demo运行时会有些问题,比如weatherinfo和lightmaps。这是由一些小bug所造成了。本文就向大家介绍这些bug的成因,以及如何绕过这些小bug。


Qt (Mobility) Bearer API

Qt Mobility Bearer API 现在已经被移植到Qt 4.7 QtNetwork 库中了。从Qt 4.7开始Qt建议大家使用 Qt 的 Bearer API,而不再使用Mobility 的Bearer API。于是我们在最新的demo程序中的pro文件中会发现这样的语句:

equals(QT_MAJOR_VERSION, 4) : greaterThan(QT_MINOR_VERSION, 6) {
# use Bearer Management classes in QtNetwork module
DEFINES += BEARER_IN_QTNETWORK
} else {
MOBILITY += bearer
}

这段代码的意思是说如果我们用于开发的Qt版本号是大于4.6的,就会使用Qt Bearer,否则仍然使用Mobility Bearer。


但是由于最新的QtNetwork还不完善,使用QtNetwork中的Bearer会有点问题(例如启动后找不到Access Point)。

解决办法:

我们暂时还是要继续使用Mobility 的 Bearer。因此我们需要将上述代码中的DEFINES += BEARER_IN_QTNETWORK替换成MOBILITY += bearer就可以了。

Location capability

在使用Qt Mobility Location API 的时候需要为我们的Symbian程序添加“Location” 能力。不过由于现在还支持S60 3.1 平台,并且在S60 3rd Edition FP2之前的版本中“Location”能力是需要 open signed,无法自签名,虽然在S60 3rd Edition FP2之后的平台上“Location”能力已经可以自签名了,详情见Capabilities
因此在我们用Qt Creator编译并生成自签名sis的过程中有一个 createpackage.bat 的程序会将“Location“能力给去掉。因此当我们运行这个程序的时候,当执行到Location相关代码时会遇到诸如:Process 875, thread 876 stopped at 0x8046ae4b: Thread 0x36c has panicked. Category: Lbs Client Fault; Reason: 6的错误,它的意思是没有找到定位服务器,这是由于程序缺少“Location”能力造成的。


解决办法:

  1. 如果我们确定不会把程序安装到S60 3.1 平台上,那么我们可以修改位于QtDir/bin/ 目录下的patch_capabilities.pl 文件,找到@capabilitiesToAllow 字符串,将"Location"添加进去就可以了。
  2. 使用证书签名(在Qt Creator的Project中有个Create SIS Package的选项,我们可以选择是否使用证书、使用哪个证书签名)。


相关链接

This page was last modified on 11 October 2012, at 01:23.
94 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.

×