×
Namespaces

Variants
Actions

如何在N9,N950上发送短信以及彩信

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
cuizhan 在 20 Sep 2011 创建
最后由 hamishwillee 在 13 Jun 2012 编辑

Contents

介绍

本文简单介绍如何实现在N9,N950上发送短信以及彩信。

基本思路

1. 创建一个联系人。
2. 创建短信头,以及短信内容。
3. 组装短信。
4 发送。

具体步骤以及注意事项

必要的头文件

#include <QDBusMessage>
#include <TelepathyQt4/Message>
#include <TelepathyQt4/Types>
#include <TelepathyQt4/MessageContentPartList>
#include <TelepathyQt4/Constants>
#include <TelepathyQt4/Account>
#include <TelepathyQt4/ContactMessenger>

第一步,创建联系人

const QString mmsAccountPath = QLatin1String ("/org/freedesktop/Telepathy/Account/mmscm/mms/mms0");
AccountPtr account = Account::create(TP_QT4_ACCOUNT_MANAGER_BUS_NAME, mmsAccountPath);
// please change the contact identifier "+111111" to other value if needed
//发送短信会用到
ContactMessengerPtr cm = ContactMessenger::create(account, "+111111");

第二步,构建短信
一条短信由短信头和一个或多个短信内容组成。最后打包成一条短信发出去

//短信头
MessagePart header;
//文字短信内容
MessagePart contentText;
//彩信,可以是图片,也可以是视频,或其他附件
MessagePart contentImage;
//打包后的短信
MessagePartList message;

例如,短信头,包含了发送地址,标题,信息

header.insert("message-sender", QDBusVariant(1));
header.insert("message-type", QDBusVariant(0));
//please change the 8612345678901 as your receiver
header.insert("message-to", QDBusVariant("+8612345678901"));
header.insert("message-subject", QDBusVariant("test message from Finland"));
header.insert("x-mms-message-class", QDBusVariant("Informational"));

普通文字内容

// text part
contentText.insert("content", QDBusVariant("Hi, This is plain text message content.I'm testing the telepathy-qt4 api on N9 and this is a test message. thx."));
contentText.insert("content-type", QDBusVariant("text/plain"));

带图片的彩信

// image part
//文件路径
contentImage.insert("content-location", QDBusVariant("/home/user/MyDocs/DCIM/nokia-logo.jpg"));
contentImage.insert("content-type", QDBusVariant("image/jpeg"));
//文件大小
contentImage.insert("size", QDBusVariant(82821));

这里要注意三点:

a. 在做自己的应用程序时,一定要保证路径正确,调试此程序,需要手动拷贝nokia-logo.jpg到DCIM路径下。
b. 文件大小一定要正确,否则会发送失败。
c. 如果还是发送失败,请联系服务商确认最大附件大小。

第三步,组装短信

message.append(header);
message.append(contentText);
message.append(contentImage);

第四步,包装短信并发送

//需要包装一下message
MessageContentPartList messageContentList(message);
cm->sendMessage(messageContentList);

示例代码

File:Qmltelepathyexample-v2.zip

特别感谢

在这里特别感谢芬兰诺基亚,Yu Bin同学提供的支持和帮助。

相关链接

This page was last modified on 13 June 2012, at 13:59.
328 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×