1

私は小さなアプリケーションを作成しました。これにより、連絡先の 1 人の可用性が変更されたときに更新することができます。現在、私はこれを記録するだけです。

ここで素晴らしいリソースを見つけました: https://rcosic.wordpress.com/2011/11/17/availability-presence-in-lync-client/

基本的に次のことをアドバイスします。

//Register to a contact
Contact contactByUri = _lyncClient.ContactManager.GetContactByUri(user.UserUri);
contactByUri.ContactInformationChanged += new EventHandler(Self_ContactInformationChanged);

void Self_ContactInformationChanged(object sender, ContactInformationChangedEventArgs e)
{
    Contact self = sender as Contact;

    // has user changed his availability (therefore, his presence status)?
    if (e.ChangedContactInformation.Contains(ContactInformationType.Availability))
    {
        ContactAvailability availability = (ContactAvailability)self.GetContactInformation(ContactInformationType.Availability);
        string activity = (string)self.GetContactInformation(ContactInformationType.Activity);
        OnAvailabilityChanged(availability, activity);
    }
}

Availability は次のいずれかです。

Invalid (-1),
None (0) – Do not use this enumerator. This flag indicates that the cotact state is unspecified.,
Free (3500) – A flag indicating that the contact is available,
FreeIdle (5000) – Contact is free but inactive,
Busy (6500) – A flag indicating that the contact is busy and inactive,
BusyIdle (7500) – Contact is busy but inactive,
DoNotDisturb (9500) – A flag indicating that the contact does not want to be disturbed,
TemporarilyAway (12500) – A flag indicating that the contact is temporarily away,
Away (15500) – A flag indicating that the contact is away,
Offline (18500) – A flag indicating that the contact is signed out.

ほとんどの場合、すべて正常に動作していますが、ある日はContactAvailability=を受け取りNoneます。

理由を知りたいのですが、この問題を解決するためにできることがあれば教えてください (クライアント SDK のリセットなど)。

4

2 に答える 2

0

これを試すことができます。

 List < ContactInformationType > contactInformationList = new List<ContactInformationType>();
 //contactInformationList.Add(ContactInformationType.Activity);
 contactInformationList.Add(ContactInformationType.Availability);
// contactInformationList.Add(ContactInformationType.CapabilityString);              
 ContactSubscription contactSubscription = 
LyncClient.GetClient().ContactManager.CreateSubscription();

購読したい連絡先を追加します

contactSubscription.AddContact(contact);                         
contactSubscription.Subscribe(ContactSubscriptionRefreshRate.High,contactInformationList);

次に、

contact.GetContactInformation(ContactInformationType.DisplayName).ToString()+"   "+ contact.GetContactInformation(ContactInformationType.Availability).ToString();
于 2016-08-04T10:03:37.940 に答える