[SailfishDevel] Sending SMS via Telepathy: Error "Channel Dispatcher .. does not support interface CD.I.Messages"
christopher.lamb at thurweb.ch
christopher.lamb at thurweb.ch
Sun Aug 9 13:17:55 UTC 2015
Hi all
I am revisiting a Sailfish OS app that I have not touched for over a
year!
Despite many Sailfish updates in that time, most of it still worked,
apart from its most important function: sending SMSes.
The SMS functionality was achieved by a few lines of C++ calling
Telepathy. The code is at the bottom of this post.
I now get the error
[D] TelepathyHelper::onSendMessageFinished:72 - Error sending message:
"org.freedesktop.Telepathy.Error.NotImplemented" - "Channel Dispatcher
implementation (e.g. mission-control), does not support interface
CD.I.Messages"
I am a little stumped by this: At the moment I guess either something in
Telepathy /used by Telepathy has changed. or I am missing a library that
was previously on the Jolla (perhaps installed by me).
Any ideas?
mfg
Chris
/////////////////////////////////////////
telepathyhelper.h
/////////////////////////////////////////
#ifndef TELEPATHYHELPER_H
#define TELEPATHYHELPER_H
#include <TelepathyQt/Types>
#include <QObject>
#include <QString>
namespace Tp
{
class PendingOperation;
}
class TelepathyHelper : public QObject
{
Q_OBJECT
public:
explicit TelepathyHelper(QObject *parent = 0);
~TelepathyHelper();
Q_INVOKABLE void sendSMS(const QString &contactIdentifier, const
QString &message);
signals:
void stateMsg(const QString &statemsg);
void errorMsg(const QString &errormsg);
private Q_SLOTS:
void onSendMessageFinished(Tp::PendingOperation *op);
private:
Tp::ContactMessengerPtr messenger;
};
#endif // TELEPATHYHELPER_H
/////////////////////////////////////////
telepathyhelper.cpp
/////////////////////////////////////////
#include "telepathyhelper.h"
#include <TelepathyQt/Account>
#include <TelepathyQt/Debug>
#include <TelepathyQt/Constants>
#include <TelepathyQt/ContactMessenger>
#include <TelepathyQt/PendingSendMessage>
#include <TelepathyQt/Types>
TelepathyHelper::TelepathyHelper(QObject *parent) :
QObject(parent)
{
Tp::registerTypes();
Tp::enableDebug(true);
Tp::enableWarnings(true);
}
TelepathyHelper::~TelepathyHelper()
{
}
void TelepathyHelper::sendSMS(const QString &contactIdentifier, const
QString &message)
{
Tp::AccountPtr acc =
Tp::Account::create(TP_QT_ACCOUNT_MANAGER_BUS_NAME,
QLatin1String("/org/freedesktop/Telepathy/Account/ring/tel/account0"));
messenger = Tp::ContactMessenger::create(acc, contactIdentifier);
connect(messenger->sendMessage(message),
SIGNAL(finished(Tp::PendingOperation*)),
SLOT(onSendMessageFinished(Tp::PendingOperation*)));
}
void TelepathyHelper::onSendMessageFinished(Tp::PendingOperation *op)
{
qDebug() << "TelepathyHelper::onSendMessageFinished";
if (op->isError()) {
qDebug() << "Error sending message:" << op->errorName() << "-"
<< op->errorMessage();
emit errorMsg("Error sending message");
return;
}
Tp::PendingSendMessage *psm = qobject_cast<Tp::PendingSendMessage
*>(op);
qDebug() << "Message sent, token is" << psm->sentMessageToken();
emit stateMsg("FinishedState");
}
/////////////////////////////////////////
More information about the Devel
mailing list