2

我是 Lync 2013 SDK 的基础开发人员。

我想将自定义状态状态从我的应用程序更改为 Lync 2013 客户端和副签证。 LyncClient.Self.Contact.ContactInformationChanged已由表单加载事件添加。

当我从自定义应用程序更改在线状态时,这也将使用我的函数更改 Lync 2013 客户端的在线状态。

    try
    {
      _lyncClient.Self.BeginPublishContactInformation(
          stuffToPublish,
          (ar) =>
              {
                  _lyncClient.Self.EndPublishContactInformation(ar);
              },
              null);
    }
    catch (ItemNotFoundException)
    {
         MessageBox.Show(_SelectedCustomAvailabilityId.ToString() + " Item not found");
    }

由于 Lync 2013 客户端的状态已更改,因此LyncClient.Self.Contact.ContactInformationChanged在执行我的函数后会触发该事件。

我不希望在我的应用程序中更改状态时发生此事件。我希望此事件仅在 Lync 2013 客户端更改在线状态时触发。

我该如何解决这个问题?

4

1 回答 1

1

您将无法判断是什么导致了在线状态更改,因为最终 ContactInformationChanged 事件实际上是由 Lync 服务器触发的,而不是由您的客户端或仅发出更改请求的应用程序触发的。

我建议存储您的应用程序认为当前存在状态应该是什么,即它最近在应用程序本身中更改为什么,并在事件处理程序中对其进行测试。

于 2014-03-28T08:40:36.830 回答