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
- Наследование
- Атрибуты
Требования к 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 останавливает мониторинг устройства на наличие изменений телефонных линий. |