迟到总比不到好,但这可能会对某人有所帮助。
我不确定这对于应用程序端点是否可行,但您肯定可以为用户端点发布照片设置(我已经这样做了并且它有效)。有关发布状态的一些基本信息可以在 MSDN 上找到:出版业务.
发布状态信息(包括照片设置)是在LocalEndpoint.LocalOwnerPresence
. Both UserEndpoint
and ApplicationEndpoint
从获得LocalEndpoint
,所以这应该是可行的。
实际的发布变得有点复杂,因为有很多不同的“级别”组合可供发布:
首先,有一堆InstanceID
您需要了解的值,请在此处阅读:状态数据源和类别实例 ID
其次,这种存在适用于谁是有价值的,请参阅Microsoft.Rtc.Collaboration.Presence.PresenceRelationshipLevel
。不要发布于Unknown
,你会得到一个例外。
public enum PresenceRelationshipLevel
{
Unknown = -1,
Everyone = 0,
External = 100,
Colleagues = 200,
Workgroup = 300,
Personal = 400,
Blocked = 32000,
}
您需要发布一个PresenceCategoryWithMetaData
对于用户照片属性,它是容器的一部分0x5
、“存在信息”。
var photoPresence = new PresenceCategoryWithMetaData(
0x5, // The container id
(int)PresenceRelationshipLevel.Everyone,
new ContactCard(0x5) // Same container ID again
{
IsAllowedToShowPhoto = true,
PhotoUri = "<uri to your photo here"
});
您可以设置一个ExpiryPolicy
在这个对象上,也应该是不言自明的。然后在您的端点上发布此存在对象:
Endpoint.LocalOwnerPresence.BeginPublishPresence(new[] { photoPresence }, cb => {
Endpoint.LocalOwnerPresence.EndPublishPresence(cb);
}, null);
确实应该这样。我最终明确发布到所有关系级别,因为它没有按照逻辑预期级联数据。这变成了一个相当长的回复,也供我自己将来参考。请告诉我这是否也适用于应用程序端点。