对话模式“ ModalityAction.SendInstantMessage”始终返回false

时间:2019-04-12 08:47:43

标签: c# lync lync-client-sdk

我正在尝试回复来自lync的传入即时消息。 要发送消息,您应该检查当前的状态,例如:

((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
                    ModalityAction.SendInstantMessage)

问题是,无论我如何尝试,无论如何,它总是返回false。在普通的lync客户端中,我可以回复即时消息,所以这不应该是问题。

我已经注册了所有需要的侦听器,并且我所做的基本上与MSDN页面上显示的完全相同。在回复聊天消息之前,也许我需要做一些事情,但是我还没有弄清楚。 我已经阅读了一些有关自动化(client.GetAutomation())的内容,但是我不确定这是否是正确的方法。

public void InstantMessageReceived(object sender, MessageSentEventArgs e)
        {
            var text = e.Text.Replace(Environment.NewLine, string.Empty);
            _trayIcon.BalloonTipText = text;
            _trayIcon.ShowBalloonTip(2000);
            SendMessage("test");
        }

private void SendMessage(string messageToSend)
        {
            try
            {
                IDictionary<InstantMessageContentType, string> textMessage =
                    new Dictionary<InstantMessageContentType, string>();
                textMessage.Add(InstantMessageContentType.PlainText, messageToSend);
                if (((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
                    ModalityAction.SendInstantMessage))
                {
                    ((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).BeginSendMessage(
                        textMessage,
                        SendMessageCallback,
                        textMessage);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Client Platform Exception: " + e.Message, "Send Message");
            }
        }

0 个答案:

没有答案
相关问题