PhoneLineWatcher Kelas

Definisi

Mewakili kelas yang memantau saluran telepon baru/dihapus/diperbarui di perangkat dan memberi tahu pendengar tentang perubahan apa pun.

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
Warisan
Object Platform::Object IInspectable PhoneLineWatcher
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows Mobile Extension SDK (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (diperkenalkan dalam v1.0)
Kemampuan aplikasi
phoneCallHistory phoneCallHistorySystem

Keterangan

Saluran telepon adalah saluran yang dapat digunakan pengguna untuk menerima panggilan telepon masuk atau keluar. Satu perangkat dapat memiliki beberapa baris. Misalnya, sistem membuat baris terpisah khusus untuk aplikasi VoIP yang memungkinkan memulai panggilan keluar.

Sistem secara otomatis mendeteksi baris yang tersedia pada boot dan kemudian secara dinamis mendeteksi garis saat garis dibuat atau diubah. Kelas PhoneLineWatcher menyediakan mekanisme bagi aplikasi untuk menerima peristiwa saat saluran telepon baru terdeteksi dan bereaksi terhadap perubahan.

Kelas ini mengimplementasikan pola pengamat.

Anda dapat mengambil instans kelas ini dengan memanggil RequestLineWatcher.

Contoh berikut menunjukkan cara menghitung semua saluran telepon saat ini.

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;
}

Properti

Status

Dapatkan status instans PhoneLineWatcher saat ini.

Metode

Start()

Mulai mendengarkan perubahan pada saluran telepon pada perangkat.

Stop()

Berhenti mendengarkan perubahan pada saluran telepon pada perangkat.

Acara

EnumerationCompleted

Terjadi ketika instans PhoneLineWatcher menyelesaikan enumerasi semua saluran telepon pada perangkat.

LineAdded

Terjadi ketika instans PhoneLineWatcher mendeteksi saluran telepon baru di perangkat.

LineRemoved

Terjadi ketika instans PhoneLineWatcher mendeteksi bahwa saluran telepon telah dihapus dari perangkat.

LineUpdated

Terjadi ketika instans PhoneLineWatcher mendeteksi bahwa saluran telepon telah diperbarui pada perangkat.

Stopped

Terjadi ketika instans PhoneLineWatcher berhenti memantau perangkat untuk perubahan pada saluran telepon.

Berlaku untuk