연락처에 커뮤니케이션 작업 사용 설정

연락처 주석은 앱이 연락처에 대해 지원하는 통신 작업(예: 프로필 보기, 메시징 또는 통화)을 설명합니다. 이 문서에서는 이러한 기능을 선언하는 방법과 Windows가 앱에서 관련 연락처를 여는 방법을 보여 줍니다.

시작하기 전에 연락처를 Windows에 제공하세요.

지원되는 통신 작업 선언

앱은 ContactAnnotation의 SupportedOperations 속성을 사용하여 연락처에 대해 지원되는 통신 기능을 선언할 수 있습니다.

이 SupportedOperations 속성은 앱이 연락처와 상호 작용할 때 지원하는 통신 작업 유형을 지정합니다. 이러한 작업은 ContactAnnotationOperations 열거형에 의해 정의됩니다.

ContactAnnotationOperations는 플래그 열거형이므로 이진 OR(|) 연산자를 사용하여 여러 작업을 결합할 수 있습니다. 이를 통해 앱은 단일 주석으로 연락처에 대해 지원되는 모든 통신 기능을 나타낼 수 있습니다. 이 속성에 대한 자세한 내용은 ContactAnnotation.SupportedOperations에 대한 API 참조를 참조하세요.

다음 예제에서는 연락처에 대해 지원되는 통신 작업을 선언하는 방법을 보여 줍니다.

var annotation = new ContactAnnotation
{
    ContactId = contact.Id,
    RemoteId = contact.RemoteId,
    SupportedOperations =
        ContactAnnotationOperations.ContactProfile |
        ContactAnnotationOperations.Message |
        ContactAnnotationOperations.AudioCall |
        ContactAnnotationOperations.VideoCall |
        ContactAnnotationOperations.SocialFeeds
};

await this.contactAnnotationList.TrySaveAnnotationAsync(annotation);

이 예제에서 주석은 앱이 연락처 프로필 보기, 메시지 보내기, 오디오 또는 영상 통화 및 지정된 연락처에 대한 소셜 피드 업데이트 액세스를 지원한다고 Windows에 선언합니다.

앱은 앱 내에서 연락처에 대해 사용할 수 있는 상호 작용 및 통신 기능을 정확하게 나타내도록 지원되는 작업을 설정해야 합니다.

통신 활성화 처리

사용자가 Windows 화면에서 통신 작업을 선택하면 Windows는 등록된 URI 프로토콜을 사용하여 사용자의 앱을 시작하고 연락처의 RemoteId를 앱에 전달합니다.

다음 URI 체계는 ContactAnnotationOperations 값에 해당합니다.

Operation URI 체계 SupportedOperations 플래그
Call ms-voip-call: AudioCall
Video ms-voip-video: VideoCall
Message ms-ipmessaging: Message
Profile ms-contact-profile: ContactProfile

예를 들어 앱이 AudioCall | VideoCall를 선언하는 경우 Windows는 다음과 같은 URI를 사용하여 앱을 활성화할 수 있습니다.

ms-voip-video:<RemoteId>

<RemoteId>는 ContactAnnotationRemoteId에 저장한 값과 동일합니다. 이를 사용하여 앱에서 해당 사용자 또는 대화를 찾고 요청된 경험을 시작합니다.

앱에서 지원하는 작업에 대해서만 URI 체계를 등록합니다. Windows는 일치하는 프로토콜 등록을 사용할 수 있는 경우에만 통신 작업을 노출합니다.

URI 스키마 등록

패키지 매니페스트에서 각 URI 체계를 windows.protocol 확장으로 선언합니다. 다음 예제에서는 프로필 보기, 메시징, 오디오 통화 및 화상 통화에 대한 프로토콜을 등록합니다.

<Extensions>
  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="ms-contact-profile">
      <uap:DisplayName>TestProfileApp</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>

  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="ms-ipmessaging">
      <uap:DisplayName>TestMsgApp</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>

  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="ms-voip-video">
      <uap:DisplayName>TestVideoApp</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>

  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="ms-voip-call">
      <uap:DisplayName>TestCallApp</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>
</Extensions>