订阅Skype for Business Client的状态更改

时间:2018-12-06 16:06:31

标签: skype-for-business lync-client-sdk

我想在自己的Skype for Buisness Client中订阅我自己的状态更改,并尝试通过Lync Client SDK进行ContactInformationChanged事件。订阅状态(doc)的文档中写道,还需要创建一个Subscription,用我要订阅的ContactInformationTypes填充它,添加我要订阅的联系人并致电{{1} }上的订阅对象。现在,除非我误解了文档,否则您仍然必须订阅Subscribe()事件。问题是,即使我省去了订阅创建部分,而只是订阅了ContactInformationChanged事件,它也没有任何区别。例如,如果我这样做:

ContactInformationChanged

我收到的 var selfContact = m_lyncClient.Self.Contact; selfContact.ContactInformationChanged += Contact_ContactInformationChanged; m_subscription = m_lyncClient.ContactManager.CreateSubscription(); m_subscription.AddContact(selfContact); List<ContactInformationType> contactInformationList = new List<ContactInformationType> { ContactInformationType.Activity, ContactInformationType.Availability, ContactInformationType.ActivityId, ContactInformationType.CustomActivity, }; m_subscription.Subscribe(ContactSubscriptionRefreshRate.High, contactInformationList); 中未指定的ContactInformationChanged事件消息。

我的问题:

  • 订阅创建部分是否还需要?
  • 有没有一种方法可以仅获取特定ContactInformationType的更改的在线通知(例如,可用性)?

1 个答案:

答案 0 :(得分:1)

  

订阅创建部分是否还需要?

对于您自己的联系人,不需要创建订阅。

  

是否有办法只获取特定ContactInformationType的更改的状态通知(例如,可用性)?

不。您只需要像这样过滤掉所有其他回调:

private void Contact_ContactInformationChanged(object sender, ContactInformationChangedEventArgs e)
{
    if (e.ChangedContactInformation.Contains(ContactInformationType.Availability) ||
        e.ChangedContactInformation.Contains(ContactInformationType.ActivityId) ||
        e.ChangedContactInformation.Contains(ContactInformationType.CustomActivity))
    {
        OnLyncPresenceChanged();
    }
}