有两种程序语言可以实现 Google 电视配对协议库:
- JAVA版本<--我的参考样例
- 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);