×
Namespaces

Variants
Actions
(Difference between revisions)

在QML中用NFC 初始化蓝牙连接聊天程序

From Nokia Developer Wiki
Jump to: navigation, search
flycarl (Talk | contribs)
(Flycarl -)
flycarl (Talk | contribs)
(Flycarl - - 参考链接)
Line 102: Line 102:
 
*[[Qt 开发]]
 
*[[Qt 开发]]
 
*[[Qt Quick (Chinese)]]
 
*[[Qt Quick (Chinese)]]
*[[Q Mobility 开发]]
+
*[[Qt Mobility 开发]]

Revision as of 06:56, 1 December 2011

这篇文章演示如何使用QML找到支持NFC的设备,并通过NFC建立蓝牙连接。


Article Metadata
Code Example
Source file: Media:NFCBtChat.zip
Tested with
Devices(s): Nokia C7
Compatibility
Platform(s):
Symbian
Article
Created: mahbub_s60 (15 Oct 2011)
Last edited: flycarl (01 Dec 2011)


Contents

介绍

本文翻译自NFC initiated Bluetooth chat application in QML 这个应用通过NFC初始化一个蓝牙连接,然后通过这个蓝牙连接发送文本聊天信息。运行应用在前台的两台手机相碰时,应用建立两台手机之间的蓝牙连接。一旦建立了蓝牙连接,我们就可以使用socket来传送数据(通常的做法)。

如何把数据传递到QML中

QDeclarativeItem 类提供了在QML中可视物体的大多数基本功能。因此我们的类继承自QDeclarativeItem
class ConnectionNotifier : public QDeclarativeItem
{
Q_OBJECT
Q_PROPERTY( QString msg READ msg WRITE setMsg )
public:
// Allow call directly C++ method from QML
Q_INVOKABLE void QuitApplication();
Q_INVOKABLE void SendMessage(const QString &aData);
public Q_SLOTS:
void showMessage(const QString & aMsg, const QString & aDevice);
void newDeviceFound();
Q_SIGNALS:
void notConnected();
void messageReceived(const QString & message);
private:
QString mMsg;
ConnectionEngine * mEngine;
};

QML 代码

在这个应用中我们创建若干长方形元素,和其他物品例如图, TextEdit 作为长方形的一部分。对话窗口用带model的list box实现。一收到的消息就添加到model中。

ConnectionNotifier
{
id: myBtConnotifier
onNotConnected:
{
textEdit.text = "Not connected"
}
onMessageReceived:
{
nfcbtchat.append({"myself": "", "other": "Other:"+ myBtConnotifier.msg})
}
onServiceDiscoveredMsg:
{
textEdit.text = "Service Found, Connecting..."
}
onNewConnection:
{
textEdit.text = "Device connected..."
}
onNewDeviceFoundMsg:
{
textEdit.text = "Device found, looking service..."
}
onConnectionClosed:
{
textEdit.text = "Connection Closed"
}
}

如何使用这个例子

工程中有一个自签名的sis文件(debug版),可直接安装这个sis文件。应用下方有3个图标,第一个发送消息,第二个清除消息,第三个推出程序。我们将sis文件安装到C7上, 打开蓝牙功能, 然后轻触两台手机,等待,hello world 文本会变成connected字样。连接成功后我们可以开始打字对话。下面是C7上的截屏。

Nfclandscape.jpg

Nfcportrait.jpg

示例代码

下面的代码用来在两台Belle系统的C7手机上传送消息。由于Qt Mobility的一些性能因素,建立连接的时间比普通蓝牙连接长很多。

下载示例: File:NFCBtChat.zip

参考链接

167 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.

×