2016-07-14 18 views
0

ノートパソコン(OnePlus One、Android 5.1)で新しいSMSが利用できるかどうか通知するノートパソコン(Debian 8)にQT 5アプリケーションを作成しています。Bluetooth:MAPから「メッセージ通知サービス」(MNS)からメッセージを読み取る方法は? QT

MAPサービスを登録してSMSを手動で読み取ることができました。このために、私はソケットを作成しました。利用可能な新しいデータがある場合は、readyRead()信号を呼び出す必要があります。これは、手動でSMSを取得するために正常に動作します。同じソケット上で私はメッセージ通知サービスを登録します。

問題は私が持っているのは、readyRead()というシグナルは、新しいメッセージが発生したときに放出されないということです。データフローを監視するにはwiresharkを使用します。 Wiresharkがこのイベントを表示します。スマートフォンはイベントをラップトップに送信しますが、接続要求を開始するソケットには送信しません。

私はここ(MAP)仕様から得た登録のための情報

は: https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=409110

私の考えは、スマートフォンとラップトップは新しいソケットを作成しますが、わからないということでした。そして、たとえQTでこのソケットにアクセスする方法がわからなくても。

誰でも手伝いできますか?ありがとうございました。

答えて

1

同じソケット上で、私はメッセージ通知サービスを登録します。

MASとMNSは2つのRFCOMMリンクにする必要があります。つまり、MASクライアント用とMNSサーバ用の2つのソケットがあります。 図6.3をMAP spec 1.1セクション6.4.2で参照してください。

+0

ありがとうございました。仕様を再読み込みした後の動作を理解しているので、通知のためにMAPソケットを使用します。新しい接続が作成され、スマートフォンのソケットが作成されますか?今すぐこのソケットにアクセスできますか? MNSのUUIDは、サービスの検索時には指定されません。 – SteffenH

+1

このシナリオでは、PCがMNSサーバーになり、電話機がMNSクライアントになります。これは、電話機がPCとの接続を初期化することを意味します。 1)あなたのPCにMNSサーバのSDPを登録する、2)あなたのPCをMASと接続する、3)あなたのPCのSDPを発見する、見つかった場合はMNSサーバがサポートされている、電話機がMNSに接続する、 4)MNS接続後、PC登録通知。新しいメッセージが来たら、電話はPCに電話からそれをフェッチするよう通知します。 –

+0

ありがとう、これは私の多くを助けた。私は私のQTプログラムでソケット接続を取得することができました。トラフィックを確認するにはwiresharkを使用します。 「成功」というメッセージが表示される前は、今はありません。また、地図 - 報告書は送付されません。私はラップトップとスマートフォンのログを調べました。 (QBluetoothUuid(QBluetoothUuid :: MessageNotificationServer)、 "MNS"); 'これをどのように修正すればい​​いのか分からないので、私はそれを呼び出します。 '成功'メッセージを得て、それに応じて(?)マップレポート?ありがとう – SteffenH

関連する問題