ContactCallActivatedEventArgs 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
- 继承
- 属性
- 实现
Windows 要求
设备系列 |
Windows Desktop Extension SDK (在 10.0.10240.0 中引入)
|
API contract |
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (在 v1.0 中引入)
|
示例
下面是处理 PSTN 号码和 Skype ID 的联系人呼叫激活所需的代码示例。
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
}
}
}
}
注解
Windows 8.1允许用户从联系人卡片或 Windows 搜索体验呼叫其联系人。 通过实现联系人呼叫激活合约,Windows 可以启动你的应用来为用户拨打电话。
若要接收呼叫激活,你的应用必须在其清单中注册“windows.contact”扩展类别。 在此扩展下,必须包含一个“LaunchAction”元素,其“Verb”属性等于“call”。然后,可以指定“ServiceId”元素来指定支持的调用类型。 例如,如果应用处理标准 PSTN 呼叫,则可以指定“ServiceId”为“电话”。如果你的应用处理基于 Web 的服务(如 Skype)的调用,则可以指定该服务的域名,例如“skype.com”。
如果多个应用已注册此协定,用户可以选择其中一个作为处理呼叫的默认应用。
注意
若要使用户能够将你的应用设置为 PSTN 号码的默认呼叫应用,你的应用还必须支持“tel”URI 方案。
下面是清单注册的示例。
<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>
在清单中注册后,可以针对联系人呼叫合同激活应用。 激活应用后,可以使用事件信息来标识呼叫激活,并提取有助于用户完成呼叫的参数。
有关如何通过联系人操作处理应用激活的信息,请参阅 快速入门:处理联系人操作 。
属性
Contact |
获取呼叫的联系人。 |
Kind |
获取激活类型。 |
PreviousExecutionState |
获取应用在激活前的执行状态。 |
ServiceId |
获取用于调用的服务的标识符。 |
ServiceUserId |
获取用于调用的服务的用户标识符。 |
SplashScreen |
获取初始屏幕对象,该对象提供有关从初始屏幕过渡到激活的应用的信息。 |
Verb |
获取要执行的操作。 |