Freigeben über


AccessoryManager.GetNextTriggerDetails Methode

Definition

Ruft die Details des nächsten Triggers ab, die die Informationen zum Trigger enthalten, einschließlich Benachrichtigungstyp, Anzeigename und Erstellungszeit.

public:
 static IAccessoryNotificationTriggerDetails ^ GetNextTriggerDetails();
 static IAccessoryNotificationTriggerDetails GetNextTriggerDetails();
public static IAccessoryNotificationTriggerDetails GetNextTriggerDetails();
function getNextTriggerDetails()
Public Shared Function GetNextTriggerDetails () As IAccessoryNotificationTriggerDetails

Gibt zurück

Enthält Informationen zum Trigger.

Windows-Anforderungen

App-Funktionen
accessoryManager

Beispiele

Bestimmen Sie den tatsächlichen Typ der Benachrichtigung. Es ist nicht erforderlich, alle Typen zu unterstützen, aber im folgenden Beispiel wird davon ausgegangen, dass das Zubehör an allem interessiert ist.

// 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();
        }
    }

Hinweise

Der AccessoryManager aktiviert den BackgroundTask, wenn eine Benachrichtigung angezeigt wird, die für das registrierte Zubehör angezeigt wird. Der BackgroundTask wird ein IBackgroundTaskInstance-Objekt bereitgestellt, das über eine TriggerDetails-Eigenschaft verfügt, die INotificationTriggerDetails enthält. Beachten Sie, dass der AccessoryManager des Telefons nur die Daten übermittelt. Es steuert nicht, wie Dinge im Zubehör gerendert werden. Das liegt beim Zubehörentwickler.

Für das Aufrufen dieser API müssen die ID_CAP_SMS - und ID_CAP_SMS_COMPANION-Funktionen im Anwendungsmanifest angegeben werden.

Gilt für: