Message receive notification using Qt Mobility
| ID | Creation date | 15th Mar 2010 | |
| Platform | S60 5th Edition | Tested on devices | Nokia N97 Mini |
| Category | Qt for Symbian | Subcategory | Qt Mobility API |
| Keywords (APIs, classes, methods, functions): QMessageStore |
Tip: Read this article before moving forward: Setting up environment for Qt Mobility API
Contents |
Overview
Circle through all messages including SMS, MMS and Email from device
Keywords
Project configuration file (.Pro file)
- Add the Qt Mobility project configuration option in the .Pro file as shown below
CONFIG += mobility
MOBILITY += messaging
Header File
#include <qtmessaging.h>
private slots:
void messageAdded(const QMessageId &id, const QMessageStore::NotificationFilterIdSet &matchingFilterIds);
private:
QMessageStore* msgStore;
QMessageFilter msgFilter;
QMessageStore::NotificationFilterId msgFilterId;
Source File
void send_notification::initialization() {
msgStore = QMessageStore::instance();
QMessageFolderFilter folderFilter(QMessageFolderFilter::byDisplayName("Inbox"));
msgFilter = QMessageFilter::byParentFolderId(folderFilter);
}
void send_notification::register_to_receive_msgs() {
msgFilterId = msgStore->registerNotificationFilter(msgFilter);
connect(msgStore, SIGNAL(messageUpdated(QMessageId, QMessageStore::NotificationFilterIdSet)), this, SLOT(messageAdded(QMessageId, QMessageStore::NotificationFilterIdSet)));
}
void send_notification::deregister_to_receive_msgs() {
msgStore->unregisterNotificationFilter(msgFilterId);
disconnect(msgStore, SIGNAL(messageAdded(QMessageId, QMessageStore::NotificationFilterIdSet)), this, SLOT(messageAdded(QMessageId, QMessageStore::NotificationFilterIdSet)));
}
void send_notification::messageAdded(const QMessageId &id, const QMessageStore::NotificationFilterIdSet &matchingFilterIds) {
if(id.isValid()) {
QMessage msgReceived(id);
QMessageContentContainer bodyPart = msgReceived.find(msgReceived.bodyId());
// bodyPart.isContentAvailable() : returns true if there is message body
QString bodyText = bodyPart.textContent();
QString msgSender = msgReceived.from().recipient();
}
else {
// Ignore this state
}
}
Classes
- QMessageStore
- QMessageFilter
- QMessageStore::NotificationFilterId
- QMessage
Reference links
- Qt - cross-platform application and UI framework
- Qt Mobility API
- New Qt APIs Beta - Mobility Project
- SDK help
--skumar_rao 02:40, 16 March 2010 (UTC)

