0

有两种程序语言可以实现 Google 电视配对协议库:

  1. JAVA版本<--我的参考样例
  2. C++ 版本 <-- 我的目标

我正在执行我的配对程序的连接任务。我找到了一些 JAVA 示例代码来调用配对库,就像这里一样。

上述链接代码中“attemptToPair”方法下的定义:

PoloWireInterface protocol = 
              WireFormat.PROTOCOL_BUFFERS.getWireInterface(context);

我不知道如何通过调用 C++ 版本库来实现这个定义。

因为'PoloWireInterface'类只是C++版本库下的一个抽象类。

此外,没有任何其他类扩展此库下的 PoloWireInterface。(检查这里

如果没有 PoloWireInterface 实例,我无法建立“ClientPairingSession”实例。


我的客户端部分配对任务如下代码,但它不起作用:'(

using namespace polo::pairing;

using namespace polo::wire;

using namespace polo::encoding;

X509* peer_cert = // peer side certificate, load by openssl

X509* local_cert = // local side certificate,  generate by openssl

PairingContext* context;

context = new PairingContext(local_cert,peer_cert,false);

// CPoloWireInterface extends abstract class PoloWireInterface
PoloWireInterface* protocol = new CPoloWireInterface(); 

PoloWireAdapter* wire = new protobuf::ProtobufWireAdapter(protocol);

PoloChallengeResponse* challenge;

challenge = new PoloChallengeResponse(local_cert,peer_cert);

ClientPairingSession* mClientPairingSession;

mClientPairingSession = new ClientPairingSession
    (wire, context, challenge, service_name, "AnyMote");

EncodingOption hexEnc(EncodingOption::kHexadecimal, 4);

mClientPairingSession->AddInputEncoding(hexEnc);

mClientPairingSession->AddOutputEncoding(hexEnc);

// CPairingListener extends abstract class PairingListener
PairingListener* listener = new CPairingListener(); 

mClientPairingSession->DoPair(listener);
4

1 回答 1

0

您不会在 java 和 c++ 库之间找到完全匹配的内容。您应该尝试使用本教程来使用 c++ 库:

https://google-tv-chrome-extensions.googlecode.com/git/LearningExerciseInstructions/instructions.html

于 2012-09-24T20:00:44.180 回答