使用Qt Mobility Messaging API发送短信
| Line 42: | Line 42: | ||
==代码== | ==代码== | ||
| − | 下面的代码片段演示了如何发短信,这里使用了一个UI界面的lineEdit来存放要发送的字符,可以是中文字符,这样做避免了关于字符编码的冗长讨论。实际操作中也不建议将中文字符硬编码在代码里,需要使用中文字符的地方应遵循[[Qt的国际化和本地化]] | + | 下面的代码片段演示了如何发短信,这里使用了一个UI界面的lineEdit来存放要发送的字符,可以是中文字符,这样做避免了关于字符编码的冗长讨论。实际操作中也不建议将中文字符硬编码在代码里,需要使用中文字符的地方应遵循[[Qt的国际化和本地化]]的操作。使用Qt Mobility中的头文件的地方需要加宏QTM_USE_NAMESPACE,才能编译通过,如果头文件中前置声明Qt Mobility中的类需要加宏 |
<code cpp> | <code cpp> | ||
| + | #include <QMessageService> | ||
| + | #include <QMessage> | ||
| + | |||
| + | // Use Qt Mobility API namespace | ||
| + | QTM_USE_NAMESPACE | ||
| + | </code> | ||
| + | <code cpp> | ||
| + | MainWindow::MainWindow(QWidget *parent) : | ||
| + | QMainWindow(parent), | ||
| + | ui(new Ui::MainWindow) | ||
| + | { | ||
| + | ui->setupUi(this); | ||
| + | |||
QMessageService service; | QMessageService service; | ||
| − | |||
QMessage message; | QMessage message; | ||
| − | |||
QMessageAddressList toList; | QMessageAddressList toList; | ||
| − | |||
QMessageAddress::Type addrType(QMessageAddress::Phone); | QMessageAddress::Type addrType(QMessageAddress::Phone); | ||
| − | + | toList.append(QMessageAddress(addrType, “13800000000”);//电话号码//这里可以设置群以号码 | |
| − | toList.append(QMessageAddress(addrType, | + | |
| − | + | ||
message.setType(QMessage::Sms);//短信类型 | message.setType(QMessage::Sms);//短信类型 | ||
| − | |||
message.setTo(toList); | message.setTo(toList); | ||
| − | + | message.setBody(ui->messageEdit->text()); | |
| − | message.setBody | + | |
| − | + | ||
service.send(message); | service.send(message); | ||
| + | } | ||
</code> | </code> | ||
Revision as of 06:17, 18 November 2010
这演示如何用Qt Mobility的Messaging API发送短信,
Article Metadata
Tested with
Devices(s): Nokia 5800 and N8.
Compatibility
Platform(s): S60 3rd Edition, FP1, FP2
S60 5th Edition Symbian^3
S60 5th Edition Symbian^3
Article
Keywords: QMessageService, QMessage, Chinese
Created: (18 Nov 2010)
Last edited: flycarl
(18 Nov 2010)
Contents |
简介
这里的代码演示如何用Qt Mobility的Messaging API发送短信,自Qt Mobility 1.1.0可以发送中文短信。 代码需要以下能力 NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment ReadDeviceData WriteDeviceData 。自签名不够用,至少需要 开发者签名 ,也可以用 Open Signed Online来测试。
准备条件
- 安装Qt for Symbian:Qt Symbian 开发环境安装
- 安装QtMobility API 1.1.0 及以上版本支持中文短信 :Qt Mobility 在Symbian平台的安装
编辑pro文件
在pro文件中增加这些行
CONFIG += mobility
MOBILITY = messaging
symbian {
TARGET.CAPABILITY = NetworkServices \
LocalServices \
ReadUserData \
WriteUserData \
UserEnvironment \
ReadDeviceData \
WriteDeviceData
}
代码
下面的代码片段演示了如何发短信,这里使用了一个UI界面的lineEdit来存放要发送的字符,可以是中文字符,这样做避免了关于字符编码的冗长讨论。实际操作中也不建议将中文字符硬编码在代码里,需要使用中文字符的地方应遵循Qt的国际化和本地化的操作。使用Qt Mobility中的头文件的地方需要加宏QTM_USE_NAMESPACE,才能编译通过,如果头文件中前置声明Qt Mobility中的类需要加宏
#include <QMessageService>
#include <QMessage>
// Use Qt Mobility API namespace
QTM_USE_NAMESPACE
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QMessageService service;
QMessage message;
QMessageAddressList toList;
QMessageAddress::Type addrType(QMessageAddress::Phone);
toList.append(QMessageAddress(addrType, “13800000000”);//电话号码//这里可以设置群以号码
message.setType(QMessage::Sms);//短信类型
message.setTo(toList);
message.setBody(ui->messageEdit->text());
service.send(message);
}

