Partager via


PhoneLineWatcher Classe

Définition

Représente une classe qui surveille les lignes téléphoniques nouvelles/supprimées/mises à jour sur l’appareil et avertit les écouteurs de toute modification.

public ref class PhoneLineWatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Calls.CallsPhoneContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PhoneLineWatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Calls.CallsPhoneContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PhoneLineWatcher
Public NotInheritable Class PhoneLineWatcher
Héritage
Object Platform::Object IInspectable PhoneLineWatcher
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows Mobile Extension SDK (introduit dans 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (introduit dans v1.0)
Fonctionnalités de l’application
phoneCallHistory phoneCallHistorySystem

Remarques

Une ligne téléphonique est une ligne qu’un utilisateur peut utiliser pour recevoir ou placer des appels téléphoniques sortants. Un seul appareil peut avoir plusieurs lignes. Par exemple, le système crée une ligne distincte spécifiquement pour les applications VoIP qui permet de lancer un appel sortant.

Le système détecte automatiquement les lignes disponibles au démarrage, puis détecte dynamiquement les lignes lors de la création ou de la modification des lignes. La classe PhoneLineWatcher fournit un mécanisme permettant aux applications de recevoir des événements lorsque de nouvelles lignes téléphoniques sont détectées et de réagir aux modifications.

Cette classe implémente le modèle observateur.

Vous pouvez récupérer un instance de cette classe en appelant RequestLineWatcher.

L’exemple suivant montre comment énumérer toutes les lignes téléphoniques actuelles.

private async Task<Dictionary<Guid, PhoneLine>> GetPhoneLinesAsync()
{
    PhoneCallStore store = await PhoneCallManager.RequestStoreAsync();

    // Start the PhoneLineWatcher
    var watcher = store.RequestLineWatcher();
    var phoneLines = new List<PhoneLine>();
    var lineEnumerationCompletion = new TaskCompletionSource<bool>();
    watcher.LineAdded += async (o, args) => { var line = await PhoneLine.FromIdAsync(args.LineId); phoneLines.Add(line); };
    watcher.Stopped += (o, args) => lineEnumerationCompletion.TrySetResult(false);
    watcher.EnumerationCompleted += (o, args) => lineEnumerationCompletion.TrySetResult(true);
    watcher.Start();

    // Wait for enumeration completion
    if (!await lineEnumerationCompletion.Task)
    {
        throw new Exception("Phone Line Enumeration failed");
    }

    watcher.Stop();

    Dictionary<Guid, PhoneLine> returnedLines = new Dictionary<Guid, PhoneLine>();

    foreach (PhoneLine phoneLine in phoneLines)
    {
        if (phoneLine != null && phoneLine.Transport == PhoneLineTransport.Cellular)
        {
            returnedLines.Add(phoneLine.Id, phoneLine);
        }
    }

    return returnedLines;
}

Propriétés

Status

Obtenez la status actuelle du instance PhoneLineWatcher.

Méthodes

Start()

Commence à écouter les modifications apportées aux lignes téléphoniques sur l’appareil.

Stop()

Arrête l’écoute des modifications apportées aux lignes téléphoniques sur l’appareil.

Événements

EnumerationCompleted

Se produit lorsque l’instance PhoneLineWatcher effectue une énumération de toutes les lignes téléphoniques de l’appareil.

LineAdded

Se produit lorsque le instance PhoneLineWatcher détecte une nouvelle ligne téléphonique sur l’appareil.

LineRemoved

Se produit lorsque le instance PhoneLineWatcher détecte qu’une ligne téléphonique a été supprimée de l’appareil.

LineUpdated

Se produit lorsque le instance PhoneLineWatcher détecte qu’une ligne téléphonique a été mise à jour sur l’appareil.

Stopped

Se produit lorsque l’instance PhoneLineWatcher arrête de surveiller l’appareil pour les modifications apportées aux lignes téléphoniques.

S’applique à