使用 Qt 如何控制 Symbian Device 震動
概述
標準Qt API并沒有為我們提供控制Symbian設(shè)備震動的接口,包括現(xiàn)在的Qt Mobility 1.0.2,以及將來的Qt Mobility 1.1也都沒有為我們提供相應(yīng)的接口。
那么本文將為大家提供一個非常簡單實用的Qt API,來控制Symbian設(shè)備震動。所有源碼以及例程都可以通過本文末尾所附鏈接下載。本例程大部分源碼得益于Mobile Extensions for Qt for Symbian,以及Liuxg的指導(dǎo),在此表示感謝。
下面就具體為大家講解如何使用這個API。
將API源碼加入工程
首先,解壓附件VibraFN.zip 得到VibraFN文件夾,然后將VibraFN文件夾里的VibraX文件夾整體拷貝到當前Qt工程的根目錄。然后修改pro文件,將API源碼添加進去:
- SOURCES += VibraX\xqvibra.cpp \
- VibraX\xqvibra_p.cpp HEADERS += VibraX\xqvibra.h \
- VibraX\xqvibra_p.h
加入庫文件
由于API中使用到了Symbian的庫,所以我們還有在pro文件中加入:
LIBS += -lhwrmvibraclient在代碼中使用vibra API
做好了前期準備工作,我們下面就可以在代碼中使用這個API來控制設(shè)備的震動了。首先在需要使用的地方引入API頭文件
#include "xqvibra.h"然后創(chuàng)建一個XQVibra的對象。例如:
XQVibra m_vibra;然后就可以使用它了,使用是非常直觀和方便的,例如:
- m_vibra.start(ui->sliderDuration->value() * 100); //開始震動,參數(shù)為int型,代表持續(xù)時間,單位為毫秒
- m_vibra.stop(); //停止震動m_vibra.setIntensity(int); //設(shè)置震動強度,范圍為-100 ~ +100并且m_vibra在狀態(tài)發(fā)生改變的時候會發(fā)送信號:
void statusChanged(XQVibra::Status status);共有三種狀態(tài),分別是:StatusNotAllowed, StatusOff, StatusOn。
測試設(shè)備
本代碼已通過在N97和N8上的測試。
同時測試還表明N8震動的靈敏度要優(yōu)于N97。
下面是程序在N8上運行時的截圖:
小結(jié):使用 Qt 如何控制 Symbian Device 震動介紹完了,本章提供的代碼地址:http://www.developer.nokia.com/Community/Wiki/images/8/8a/VibraFN.zip?20100904163216