Discussion Board

Results 1 to 5 of 5
  1. #1
    Registered User Stariy2003's Avatar
    Join Date
    May 2008
    Posts
    4
    Программа должна висеть в памяти и перехватывать все отправляемые смски. Перехватив, надо сравнить номер получателя с заданным в настройках, если не совпадет - отправлять дальше, если совпадет - добавлять к тексту кое-что и опять-таки отправлять дальше.
    Подскажите, в какую сторону смотреть? Как слать смс, я вроде разобрался, а вот как перехватить?
    Ос - симбиан, qt.

  2. #2
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Если сообщение отправляется через стандартный интерфейс или стандартный API, то в момент отправки сообщение помещается в папку "Исходящие". Используя фильтр
    QMessageStore::registerNotificationFilter(QMessageFilter::byStandardFolder(QMessage::OutboxFolder));
    можно получать уведомления о создании сообщения в папке "Исходящие". Копируйте его и удаляйте, пока сообщение не ушло. Далее фильтруйте и делайте то, что вам требуется.
    Если же сообщение отправляется через сокеты, то перехватить его не получится.

  3. #3
    Registered User Stariy2003's Avatar
    Join Date
    May 2008
    Posts
    4
    QMessageStore, если я правильно понял, уже не используется, вместо него QMessageManager.
    Я наваял нижеприведенный код, вроде бы должно работать, ан нет. При попытке отправить СМС выводится сообщение:
    "Сбщ. SMS. Уже используется!"
    И предлагается сохранить СМС в черновики или удалить.
    Если заменить OutboxFolder на InboxFolder, то входящие смски отлавливаются (правда сигнал о приходе СМС успевает прозвучать), видимо истина где-то рядом совсем.
    Что я не так делаю?

    Code:
    void Dialog::on_StartBtn_clicked()
    {
        // Manager for listening messages
        m_manager = new QMessageManager(this);
    
        // Listen new added messages
        connect(m_manager,
                SIGNAL(messageAdded(const QMessageId&,
                                    const QMessageManager::NotificationFilterIdSet&)),
                this,
                SLOT(messageAdded(const QMessageId&,
                                  const QMessageManager::NotificationFilterIdSet&)));
    
        m_notifFilterSet.insert(m_manager->registerNotificationFilter(
                QMessageFilter::byType(QMessage::Sms) &
                QMessageFilter::byStandardFolder(QMessage::OutboxFolder)));
    
    }
    
    
    void Dialog::messageAdded(const QMessageId& id,
        const QMessageManager::NotificationFilterIdSet& matchingFilterIds)
    {
        // Message added...
        if (matchingFilterIds.contains(m_notifFilterSet)) {
            // ...and it fits into our filters, lets process it
            m_messageId = id;
            QTimer::singleShot(0, this, SLOT(processIncomingSMS()));
        }
    }
    
    void Dialog::processIncomingSMS()
    {
        QMessage message = m_manager->message(m_messageId);
        QString messageString = message.textContent();
        QString messageAdresat = message.to().at(0).addressee();
    
        if(messageAdresat=="+79161233434")
        {
            m_manager->removeMessage(m_messageId);
            connect(&service, SIGNAL(stateChanged(QMessageService::State)), this, SLOT(stateChanged(QMessageService::State)));
            MySendSMS(messageString+"My text", messageAdresat);
        }
    }

  4. #4
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Честно говоря, не уверен, что на Qt данный подход работает. На Symbian C++ это точно осуществимо.

  5. #5
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Фоновый процесс, обрабатывающий входящие смс-ки, - самое оно писать на Symbian C++
    Все необходимые примеры есть в Wiki.

Similar Threads

  1. Как перехватить кнопку PTT?
    By Stanson_ru in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 5
    Last Post: 2010-02-21, 21:52
  2. Открытие смс в Inbox
    By Alekzandr in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 9
    Last Post: 2010-02-04, 16:03
  3. Отправить СМС сообщение.
    By vKazakov in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 2
    Last Post: 2009-01-08, 11:10

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved