BUS_BLOCKING_CALL_NOT_ALLOWED AllJoyn 中的错误



我正在尝试为我的应用程序使用 AllJoyn,但是当我尝试使用示例(示例 13)中的代码时,我无法加入会话并收到错误BUS_BLOCKING_CALL_NOT_ALLOWED。

    bus.registerBusListener(new BusListener() {
        @Override
        public void foundAdvertisedName(String name,
                                        short transport,
                                        String namePrefix) {
            short contactPort = CONTACT_PORT;
            SessionOpts sessionOpts = new SessionOpts();
            Mutable.IntegerValue sessionId = new Mutable.IntegerValue();
            Status status = bus.joinSession("com.my.well.known.name", //here's error: status = BUS_BLOCKING_CALL_NOT_ALLOWED 
                    contactPort,
                    sessionId,
                    sessionOpts,
                    new SessionListener());
            bus.cancelAdvertiseName("com.my.well.known.name",SessionOpts.TRANSPORT_ANY);
        }
    });

这段代码来自示例,我不知道它有什么问题。你可以帮我吗?

如有必要,下面是完整的代码:http://pastebin.com/f1sD7RtK

我正在尝试创建新频道并自动连接到它,而无需用户参与。

此外,我将非常感谢任何好的建议或样品。

在 foundAdvertisedName 方法中调用bus.joinSession(...)之前,请尝试调用bus.enableConcurrentCallbacks()
这将允许AllJoyn在当前回调foundAdvertisedName仍在执行时调度一个额外的回调。下面是说明所发生情况的文档链接。

最新更新