PhoneLineWatcher Класс

Определение

Представляет класс, который отслеживает новые, удаленные или обновленные телефонные линии на устройстве и уведомляет прослушивателей о любых изменениях.

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
Наследование
Object Platform::Object IInspectable PhoneLineWatcher
Атрибуты

Требования к Windows

Семейство устройств
Windows Mobile Extension SDK (появилось в 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (появилось в v1.0)
Возможности приложения
phoneCallHistory phoneCallHistorySystem

Комментарии

Телефонная линия — это линия, которую пользователь может использовать для приема входящих или исходящих телефонных звонков. Одно устройство может иметь несколько строк. Например, система создает отдельную строку специально для приложений VoIP, которые позволяют инициировать исходящий вызов.

Система автоматически обнаруживает доступные строки при загрузке, а затем динамически обнаруживает строки по мере их создания или изменения. Класс PhoneLineWatcher предоставляет механизм, позволяющий приложениям получать события при обнаружении новых телефонных линий и реагировании на изменения.

Этот класс реализует шаблон наблюдателя.

Экземпляр этого класса можно получить, вызвав RequestLineWatcher.

В следующем примере показано, как выполнить перечисление по всем текущим телефонным линиям.

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

Свойства

Status

Получение текущего состояния экземпляра PhoneLineWatcher .

Методы

Start()

Начинает прослушивать изменения телефонных линий на устройстве.

Stop()

Прекращает прослушивание изменений телефонных линий на устройстве.

События

EnumerationCompleted

Происходит, когда экземпляр PhoneLineWatcher завершает перечисление всех телефонных линий на устройстве.

LineAdded

Происходит, когда экземпляр PhoneLineWatcher обнаруживает новую телефонную линию на устройстве.

LineRemoved

Происходит, когда экземпляр PhoneLineWatcher обнаруживает, что телефонная линия была удалена с устройства.

LineUpdated

Происходит, когда экземпляр PhoneLineWatcher обнаруживает, что телефонная линия была обновлена на устройстве.

Stopped

Происходит, когда экземпляр PhoneLineWatcher останавливает мониторинг устройства на наличие изменений телефонных линий.

Применяется к