PhoneLineWatcher Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una classe che monitora le righe di telefono nuove/rimosse/aggiornate nel dispositivo e notifica ai listener eventuali modifiche.
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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows Mobile Extension SDK (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.ApplicationModel.Calls.CallsPhoneContract (è stato introdotto in v1.0)
|
Funzionalità dell'app |
phoneCallHistory
phoneCallHistorySystem
|
Commenti
Una linea telefonica è una riga che un utente può usare per ricevere chiamate telefoniche in ingresso o in uscita. Un singolo dispositivo può avere più righe. Ad esempio, il sistema crea una riga separata specificamente per le applicazioni VoIP che consentono di avviare una chiamata in uscita.
Il sistema rileva automaticamente le righe disponibili all'avvio e quindi rileva dinamicamente le righe come righe vengono create o modificate. La classe PhoneLineWatcher fornisce un meccanismo per le applicazioni per ricevere eventi come nuove linee telefoniche vengono rilevate e reagiscono alle modifiche.
Questa classe implementa il modello watcher.
È possibile recuperare un'istanza di questa classe chiamando RequestLineWatcher.
Nell'esempio seguente viene illustrato come enumerare tutte le linee telefoniche correnti.
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;
}
Proprietà
Status |
Ottenere lo stato corrente dell'istanza phoneLineWatcher . |
Metodi
Start() |
Avvia l'ascolto delle modifiche alle linee di telefono nel dispositivo. |
Stop() |
Arresta l'ascolto delle modifiche alle linee di telefono nel dispositivo. |
Eventi
EnumerationCompleted |
Si verifica quando l'istanza phoneLineWatcher completa un'enumerazione di tutte le righe di telefono nel dispositivo. |
LineAdded |
Si verifica quando l'istanza phoneLineWatcher rileva una nuova riga di telefono nel dispositivo. |
LineRemoved |
Si verifica quando l'istanza phoneLineWatcher rileva che una riga di telefono è stata rimossa dal dispositivo. |
LineUpdated |
Si verifica quando l'istanza phoneLineWatcher rileva che una riga di telefono è stata aggiornata nel dispositivo. |
Stopped |
Si verifica quando l'istanza phoneLineWatcher arresta il monitoraggio del dispositivo per le modifiche alle linee telefoniche. |