Você está na página 1de 21

Qt Mobility

Qt Mobility API

Danilo Freire de Souza Santos

O que ?
Um conjunto de APIs que oferecem acesso a servios da plataforma
Servios oferecidos por dispositivos mveis/portatis

Exemplos
Seleo de Rede Servios Multimdia Notificaes Mensagens Gerenciamento de contatos e calendrio

Qt Bsico

Onde achar?
O Qt Mobility j vem incluso no Qt SDK
Pode ser atualizado utilizando as ferramentas do SDK

Mais informaes e documentao em:


http://qt.nokia.com/products/qt-addons/mobility/

Verso atual do SDK:


Qt Mobility 1.1.3

Prxima verso disponvel para avaliao:


Qt Mobility 1.2 beta
Qt Bsico 3

Preparativos
O projeto Qt deve ser preparado para o Qt Mobility
No arquivo .pro deve-se adicionar o mdulo mobility e quais componentes do Qt Mobility vo ser utilizados CONFIG += mobility strict_flags MOBILITY += Location

Em Symbian lembrem-se de adicionar as capabilities necessrias


Exemplo: TARGET.CAPABILITY += LocalServices

Qt Bsico

Componentes do Qt Mobility
Bearer Management
An API to control the system's connectivity state.

Contacts
An API enabling clients to request contact data from local or remote backends.

Document Gallery
An API to navigate and query documents using their meta-data.

Feedback
An API enabling a client to provide tactile and audio feedback to user actions.

Location
The Location API provides a library for location positioning, landmark management and mapping and navigation.
Qt Bsico 5

Componentes do Qt Mobility
Messaging
The Messaging API enables access to messaging services.

Mobility QML Plugins


A set of QML compatible plugins for the Mobility Project.

Multimedia
Provides a set of APIs to play and record media, and manage a collection of media content.

Organizer
An API enabling clients to request calendar, schedule and personal data from local or remote backends.
Qt Bsico 6

Componentes do Qt Mobility
Publish and Subscribe
The Publish and Subscribe API, containing Value Space, enables applications to read item values, navigate through and subscribe to change notifications.

Qt Service Framework
A set of Qt APIs to that allows clients to discover and instantiate arbitrary services.

Sensors
The Sensors API provides access to sensors.

System Information
A set of APIs to discover system related information and capabilities.

Versit
An API to import and export to the vCard and iCalendar formats.
Qt Bsico 7

Bearer Management
Gerencia o acesso as redes
Inicia e para interfaces de rede Configura prioridades de acesso Gerencia e controla a mudana entre redes
Wi-Fi e Celular, por exemplo

Capabilities necessrias
ReadUserData e NetworkServices NetworkControl se for necessrio parar uma rede

Qt Bsico

QNetworkConfigurationManager
Criando uma sesso
QTM_USE_NAMESPACE // Set Internet Access Point QNetworkConfigurationManager manager; const bool canStartIAP = (manager.capabilities() & QNetworkConfigurationManager::CanStartAndStopInterfaces);

Sempre adicione o namespace do Qt Mobility

// Is there default access point, use it QNetworkConfiguration cfg = manager.defaultConfiguration();


if (!cfg.isValid() || (!canStartIAP && cfg.state() != QNetworkConfiguration::Active)) { QMessageBox::information(this, tr("Network"), tr( "No Access Point found.")); return; } session = new QNetworkSession(cfg, this); session->open(); session->waitForOpened(-1)

Qt Bsico

Contacts
Acessa o gerenciador de contato da plataforma
Possvel criar novos contatos Recuperar dados de contatos Editar dados de contatos

Capabilities necessrias
ReadUserData e WriteUserData

Qt Bsico

10

API de Contatos
Criando um novo contato
Utilize o QContactManager
QContactManager* conMan = new QContactManager( this ); QContact danilo; QContactName name; //set name danilo.saveDetail(name);

QContactPhoneNumber number; //set number danilo.saveDetail(number);


conMan->saveContact(danilo);

Qt Bsico

11

Location
Oferece APIs para acessar informaes sobre posio
independente da tecnologia (pode ser GPS, Rede, etc) Posio fornecida na classe QGeoPositionInfo Informao atualizada via Sinais

Capabilities necessrias
Location

Qt Bsico

12

Principais Classes
QGeoCoordinate
Latitude, Longitude e Altitute

QGeoPositionInfo
Coordenadas, direo, velocidade, etc

QGeoPositionInfoSource
Classe Abstrata Define os mtodos de posicionamento Slots: StartUpdate, stopUpdate, requestUpdate Signals: positionUpdated, updatedTimeout

Qt Bsico

13

Exemplo de Uso
QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this); if (source) { connect(source,SIGNAL(positionUpdated(QGeoPositionInfo)), SLOT(positionUpdated(QGeoPositionInfo))); source->startUpdates(); } Iniciando.

void positionUpdated(const QGeoPositionInfo &info) {


double latitude = info.coordinate().latitude(); double longitude = info.coordinate().longitude(); double altitude = info.coordinate().altitude(); }

No SLOT. Qt Bsico 14

Messaging
Interfaces para acesso a vrios sistemas
SMS, MMS E-mail XMPP

Capabilities necessrias
LocalServices, NetworkServices, UserEnvironment, ReadUserData, WriteUserData, ReadDeviceData, WriteDeviceData

Qt Bsico

15

Enviando um SMS

QMessage message;

QMessageAddress::Type addressType = QMessageAddress::Phone; message.setType(QMessage::Sms); message.setTo(QMessageAddress(addressType, "+5583XXXXXXX")); message.setBody("Hello");


QMessageService* service = new QMessageService(); service->send(message);

Qt Bsico

16

Multimedia
Oferece APIs que facilitam a manipulao de dados multimdia
Audio Player Video Player Imagens Etc

Capabilities necessrias
UserEnvironment, ReadUserData, WriteUserData, ReadDeviceData e WriteDeviceData
Qt Bsico 17

Audio Player

QMediaPlayer* player = new QMediaPlayer(); connect(player, SIGNAL(positionChanged(qint64), this, SLOT(changePosition(qint64)));

player->setMedia(QUrl::fromLocalFile(c://audio.mp3));
player->setVolume(50); player->play();

Qt Bsico

18

Video Player com Playlist


QMediaPlayer* player = new QMediaPlayer(); QMediaPlaylist* list = new QMediaPlaylist(player); list->append(QUrl(videoUm)); list->append(QUrl(videoDois)); list->append(QUrl(videoTres));

QVideoWidget* widget = new QVideoWidget(player, parentWindow);


widgetshow(); player->setVolume(50); player->play();

Qt Bsico

19

Mais detalhes sobre as outras APIs

Consultem a documentao online

Qt Bsico

20

Exerccio 1
Carreguem e explorem o exemplo Player() do Qt Mobility Sigam instrues do professor.

Qt Bsico

21

Você também pode gostar