Compartir a través de


ContactCallActivatedEventArgs Clase

Definición

Proporciona datos cuando se activa una aplicación para llamar a un contacto.

Javascript Este tipo aparece como WebUIContactCallActivatedEventArgs.

public ref class ContactCallActivatedEventArgs sealed : IActivatedEventArgs, IContactCallActivatedEventArgs
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Activation.ContactActivatedEventsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ContactCallActivatedEventArgs final : IActivatedEventArgs, IContactCallActivatedEventArgs
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Activation.ContactActivatedEventsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ContactCallActivatedEventArgs : IActivatedEventArgs, IContactCallActivatedEventArgs
Public NotInheritable Class ContactCallActivatedEventArgs
Implements IActivatedEventArgs, IContactCallActivatedEventArgs
Herencia
Object Platform::Object IInspectable ContactCallActivatedEventArgs
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows Desktop Extension SDK (se introdujo en la versión 10.0.10240.0)
API contract
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (se introdujo en la versión v1.0)

Ejemplos

Este es un ejemplo del código que necesita para controlar las activaciones de llamadas de contacto para números RTC e identificadores de Skype.

protected override void OnActivated(IActivatedEventArgs args)
{
    if (args.Kind == ActivationKind.Contact)
    {
        var contactArgs = args as IContactActivatedEventArgs;
        if (contactArgs.Verb == Windows.ApplicationModel.Contacts.ContactLaunchActionVerbs.Call)
        {
            IContactCallActivatedEventArgs callArgs = contactArgs as IContactCallActivatedEventArgs;

            //get contact display info
            var contactName = callArgs.Contact.DisplayName;
            var contactThumbnail = callArgs.Contact.Thumbnail;

            if (callArgs.ServiceId == "telephone")
            {
                var phoneNumber = callArgs.ServiceUserId;
                //add calling logic for PSTN numbers
            }
            else if (callArgs.ServiceId == "skype.com")
            {
                var userId = callArgs.ServiceUserId;
                //add calling logic for Skype Ids
            }
        }
    }
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args)
{
    if (args.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Contact)
    {
        auto contactArgs{ args.as<Windows::ApplicationModel::Activation::IContactActivatedEventArgs>() };
        if (contactArgs.Verb() == Windows::ApplicationModel::Contacts::ContactLaunchActionVerbs::Call())
        {
            auto callArgs{ contactArgs.as<Windows::ApplicationModel::Activation::ContactCallActivatedEventArgs>() };

            // Get contact display info.
            auto contactName{ callArgs.Contact().DisplayName() };
            auto contactThumbnail{ callArgs.Contact().Thumbnail() };

            if (callArgs.ServiceId() == L"telephone")
            {
                auto phoneNumber{ callArgs.ServiceUserId() };
                // Add calling logic for PSTN numbers.
            }
            else if (callArgs.ServiceId() == L"skype.com")
            {
                auto userId{ callArgs.ServiceUserId() };
                // Add calling logic for Skype Ids.
            }
        }
    }
}
void App::OnActivated(IActivatedEventArgs^ args)
{
    if (args->Kind == ActivationKind::Contact)
    {
        auto contactArgs = dynamic_cast<IContactActivatedEventArgs^>(args);
        if (contactArgs->Verb == Windows::ApplicationModel::Contacts::ContactLaunchActionVerbs::Call)
        {
            auto callArgs = dynamic_cast<ContactCallActivatedEventArgs^>(contactArgs);

            //get contact display info
            auto contactName = callArgs->Contact->DisplayName;
            auto contactThumbnail = callArgs->Contact->Thumbnail;

            if (callArgs->ServiceId == "telephone")
            {
                auto phoneNumber = callArgs->ServiceUserId;
                //add calling logic for PSTN numbers
            }
            else if (callArgs->ServiceId == "skype.com")
            {
                auto userId = callArgs->ServiceUserId;
                //add calling logic for Skype Ids
            }
        }
    }
}

Comentarios

Windows 8.1 permite a los usuarios llamar a sus contactos desde la experiencia de Tarjeta de contacto o Búsqueda de Windows. Al implementar el contrato de activación de llamadas de contacto, Windows puede iniciar la aplicación para realizar llamadas al usuario.

Para recibir activaciones de llamadas, la aplicación debe registrarse para la categoría de extensión "windows.contact" en su manifiesto. En esta extensión, debe incluir un elemento "LaunchAction" con el atributo "Verb" igual a "call". A continuación, puede especificar el elemento "ServiceId" para especificar el tipo de llamada que admite. Por ejemplo, si la aplicación controla las llamadas RTC estándar, puede especificar un "ServiceId" de "teléfono". Si la aplicación controla la llamada a través de un servicio basado en web, como Skype, puede especificar el nombre de dominio de ese servicio, por ejemplo, "skype.com".

Si varias aplicaciones se han registrado para este contrato, el usuario puede elegir una de ellas como valor predeterminado para controlar las llamadas.

Nota:

Para permitir que un usuario establezca la aplicación como su aplicación de llamada predeterminada para números RTC, la aplicación también debe admitir el esquema de URI "tel".

Este es un ejemplo para el registro de manifiestos.

<m2:Extension Category="windows.contact" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
  <m2:Contact>
    <m2:ContactLaunchActions>
      <m2:LaunchAction Verb="call" DesiredView="useLess">
        <m2:ServiceId>telephone</m2:ServiceId>
        <m2:ServiceId>skype.com</m2:ServiceId>
      </m2:LaunchAction>
    </m2:ContactLaunchActions>
  </m2:Contact>
</m2:Extension>

Después de registrarse en el manifiesto, la aplicación se puede activar para el contrato de llamada de contacto. Cuando se activa la aplicación, puedes usar la información del evento para identificar la activación de la llamada y extraer los parámetros que te ayudarán a completar la llamada al usuario.

Para obtener información sobre cómo controlar la activación de aplicaciones a través de acciones de contacto, consulte Inicio rápido: Control de acciones de contacto .

Propiedades

Contact

Obtiene el contacto de la llamada.

Kind

Obtiene el tipo de activación.

PreviousExecutionState

Obtiene el estado de ejecución de la aplicación antes de activarla.

ServiceId

Obtiene el identificador del servicio usado para la llamada.

ServiceUserId

Obtiene el identificador de usuario del servicio usado para la llamada.

SplashScreen

Obtiene el objeto de pantalla de presentación, que proporciona información sobre la transición de la pantalla de presentación a la aplicación activada.

Verb

Obtiene la acción que se va a realizar.

Se aplica a

Consulte también