AccessoryManager.GetNextTriggerDetails メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
通知の種類、表示名、作成された時間など、トリガーに関する情報を含む次のトリガーの詳細を取得します。
public:
static IAccessoryNotificationTriggerDetails ^ GetNextTriggerDetails();
static IAccessoryNotificationTriggerDetails GetNextTriggerDetails();
public static IAccessoryNotificationTriggerDetails GetNextTriggerDetails();
function getNextTriggerDetails()
Public Shared Function GetNextTriggerDetails () As IAccessoryNotificationTriggerDetails
戻り値
トリガーに関する情報が含まれます。
Windows の要件
アプリの機能 |
accessoryManager
|
例
通知の実際の種類を決定します。 すべての種類をサポートする必要はありませんが、以下のサンプルでは、アクセサリがすべてに関心があると仮定しています。
// MyBackgroundTask.cs
public async void Run(IBackgroundTaskInstance taskInstance)
{
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
INotificationTriggerDetails notificationTriggerDetails =
AccessoryManager.NextTriggerDetails();
while (notificationTriggerDetails != null)
// get rid of while loop in case you would like to process one notification at a time.
// You have to use ProcessingTriggerDetailsCompleted to indicate that you are done with this instance of the trigger
{
switch (notificationTriggerDetails.NotificationType)
{
case NotificationType.PhoneCall:
IPhoneNotificationTriggerDetails phoneCallTriggerDetails = notificationTriggerDetails as IPhoneNotificationTriggerDetails;
string callMsg = "Got Phone Notification for ";
switch (phoneCallTriggerDetails.PhoneNotificationType)
{
case PhoneNotificationType.NewCall:
case PhoneNotificationType.CallChanged:
callMsg +=
phoneCallTriggerDetails.PhoneNotificationType.ToString();
callMsg += " having direction " +
phoneCallTriggerDetails.CallDetails.CallDirection.ToString();
callMsg += " from " +
phoneCallTriggerDetails.CallDetails.PhoneNumber + "(" +
phoneCallTriggerDetails.CallDetails.ContactName + ") ";
callMsg += "Media type " +
phoneCallTriggerDetails.CallDetails.CallMediaType + "," +
phoneCallTriggerDetails.CallDetails.CallTransport;
callMsg += " with State " +
phoneCallTriggerDetails.CallDetails.State.ToString();
callMsg += " and Call id " +
phoneCallTriggerDetails.CallDetails.CallId;
Debug.WriteLine(callMsg);
//Based on input from the device use the following methods to take action on the call
//Accept Call
//AccessoryManager.AcceptPhoneCall(phoneCall.CallDetails.CallId);
//Reject With SMS
//IReadOnlyList<ITextResponse> listResponses = phoneCall.CallDetails.PresetTextResponses;
//string response = listResponses[0].Content;
// AccessoryManager.RejectPhoneCall(phoneCall.CallDetails.CallId, listResponses[0].Id);
// Reject Call
// AccessoryManager.RejectPhoneCall(phoneCall.CallDetails.CallId);
break;
case PhoneNotificationType.PhoneCallAudioEndpointChanged:
case PhoneNotificationType.PhoneMuteChanged:
callMsg += phoneCallTriggerDetails.PhoneLineChangedId;
callMsg +=
phoneCallTriggerDetails.PhoneNotificationType.ToString();
Debug.WriteLine(callMsg);
break;
}
break;
case NotificationType.Toast:
IToastNotificationTriggerDetails toast =
notificationTriggerDetails as IToastNotificationTriggerDetails;
Debug.WriteLine("Got toast from :" + toast.AppDisplayName + " AppId: " + toast.AppId + " Header: " + toast.Text1 + " Body: " + toast.Text2 + " IsGhost:" + toast.SuppressPopup + " at: " + toast.TimeCreated);
break;
case NotificationType.Alarm:
IAlarmNotificationTriggerDetails alarmTriggerDetails = notificationTriggerDetails as IAlarmNotificationTriggerDetails;
Debug.WriteLine("Got Alarm :" + alarmTriggerDetails.AppDisplayName + " AppId: " + alarmTriggerDetails.AppId + " Title: " + alarmTriggerDetails.Title + " IsActive: " + alarmTriggerDetails.IsActive + " TimeStamp:" + alarmTriggerDetails.Timestamp);
break;
case NotificationType.AppUninstalled:
INotificationTriggerDetails appUninstallTriggerDetails = notificationTriggerDetails as INotificationTriggerDetails;
Debug.WriteLine("Got Application Uninstall Trigger for App: " + appUninstallTriggerDetails.AppDisplayName + " AppId: " + appUninstallTriggerDetails.AppId + " at" + appUninstallTriggerDetails.TimeCreated);
break;
case NotificationType.Email:
//get the Email data from trigger details
case NotificationType.Sms:
//get the SMS details
break;
default:
Debug.WriteLine("Not supported notification type");
break;
}
//TODO: Make connection and send the data to the accessory
//Mark the trigger details as completed processing
AccessoryManager.ProcessingTriggerDetailsCompleted(notificationTriggerDetails);
notificationTriggerDetails =
AccessoryManager.NextTriggerDetails();
}
deferral.Complete();
}
}
注釈
AccessoryManager は、アクセサリが表示対象として登録されているという通知を検出すると、BackgroundTask を起動します。 BackgroundTask には、INotificationTriggerDetails を含む TriggerDetails プロパティを持つ IBackgroundTaskInstance が用意されています。 電話機の AccessoryManager はデータのみを配信します。アクセサリでのレンダリング方法は制御されません。 それはすべてアクセサリー開発者次第です。
この API を呼び出すには、 アプリケーション マニフェストで ID_CAP_SMS 機能とID_CAP_SMS_COMPANION機能を指定する必要があります。