私はAllJoynフレームワークを使用するAndroid Appを構築しています。基本的には、私はロビーを作成し、参加している人々に特定のゲームをさせるために、LAN通信が必要です。AllJoyn BusSignalReplyエラー
このため、私はオブジェクトLobbyとそれに対応するLobbyInterfaceを作成しました。私が今行っていることは次のとおりです。 - ユーザーはロビーを作成でき、これは接続されているすべてのデバイスのリストに表示されます。 - 作成したロビーを選択して参加できます。
私が今したいのは、ユーザーがロビーに参加するときにリストを更新することです。このためには、私はロビーにあるユーザーリストを取得する必要があります。私はLobbyInterfaceからこのリストを取得しようとしています。私は複雑なオブジェクト(構造的に構築されていなければ)をバスで得ることができないことを知っていますが、単純な配列の文字列を取得しようとしています。
これは私のコードです:
LobbyClass:
public class Lobby implements LobbyInterface, BusObject {
private String[] lstUsers;
private String name;
public Lobby(String name){
this.name = name;
lstUsers = new String[4];
}
/**
extra code here
**/
@Override
public String[] getLstUsers() throws BusException {
return lstUsers;
}
}
LobbyInterfaceクラス:
@BusInterface(name = "com.example.cantor.pruebamultiplayerv3.lobby", announced = "true")
public interface LobbyInterface {
@BusMethod(replySignature = "as")
String[] getLstUsers() throws BusException;
}
これは私がこれを呼んでいる、そこからの方法で、UsersFacadeクラスを形成:
public String[] getLstUsers(){
try {
Log.d(TAG, "USER could get users list");
return lobbyI.getLstUsers();
} catch (BusException e) {
Log.d(TAG, "USER error getting users lst");
e.printStackTrace();
}
return null;
}
これは常にnullを返し、エラーは次のとおりです。
04-23 21:09:47.327 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: org.alljoyn.bus.ErrorReplyBusException: org.alljoyn.Bus.ErStatus
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method)
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:35)
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:264)
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at java.lang.reflect.Proxy.invoke(Proxy.java:397)
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at $Proxy2.getLstUsers(Unknown Source)
04-23 21:09:47.346 5864-5864/com.example.cantor.pruebamultiplayerv3 W/System.err: at com.example.cantor.pruebamultiplayerv3.UsersFacade.getLstUsers(UsersFacade.java:70)
位置とタイプを指定する構造体を返すことができます。このように、私はここに他の答えを読んできたが、これらは複雑なデータのためのものである https://allseenalliance.org/docs/api/java/org/alljoyn/bus/annotation/Signature.html
: signature get error on Alljoyn framework?
間違っている何が、私は文字列の単純な配列で動作できることを見てきました私のコードで?他の選択肢はありますか?
ありがとうございました!