2016-06-13 47 views
0

我對AllJoyn相當陌生,一直在嘗試使用Java API來開發AllJoyn兼容應用程序。我瀏覽了所有示例Java和Android應用程序,並且可以毫無問題地運行它們。但在所有樣本中,我觀察到他們遵循客戶/服務模式。在編譯時,客戶端必須知道服務實現的接口。以下是演示代碼中的幾個快照。AllJoyn自動發現和交互

// From ObserverSample for Android 
ProxyBusObject obj = (ProxyBusObject) msg.obj; 
Door door = obj.getInterface(Door.class); 

// From JavaSDKDocAboutClient 
mProxyObj = mBus.getProxyBusObject (busName, "/example/path". sessionId.value, new Class<?>[] { SampleInterface.class}); 

我想開發一個具有某些屬性,BusMethods和BusSignals的服務。我希望從第三方AllJoyn應用程序(AllJoyn儀表板應用程序作爲示例)可以發現和控制此服務,而無需應用程序知道我的客戶端界面。

我無法知道如何實現這一點,因爲無論我看到什麼,看起來接口我將用於我的服務,客戶端必須知道它已經支持我的服務。從擴展的角度來看這可能如何?目前可能有很多服務或將來可能會出現,但已經知道其接口是不可行的。

如果有人能請我指點資源,我可以找到有關開發此類服務的更多信息,這將會有所幫助。

預先感謝您。

回答

0

如果您的客戶端Java應用程序沒有關於服務接口的信息,那麼您需要創建一個本地C++庫來與您的Java部件進行通信並利用alljoyn內省。 使用C++,可以以編程方式調用方法或獲取屬性,而不必像Java那樣硬編碼該信息。

欲瞭解更多信息,看看/ alljoyn_core /樣品 https://git.allseenalliance.org/cgit/core/alljoyn.git/snapshot/alljoyn-16.04.zip

+0

感謝您利諾在指向正確的方向在eventaction樣品。我能夠用C++開發一個可發現的應用程序,而controlpanel示例應用程序是非常有用的資源。 –