RemoteSystemSession Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa y controla una sesión remota que se puede compartir entre dos o más dispositivos conectados. Vea Comentarios para obtener información sobre esta característica.
public ref class RemoteSystemSession sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RemoteSystemSession final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RemoteSystemSession : System.IDisposable
Public NotInheritable Class RemoteSystemSession
Implements IDisposable
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)
|
Características de aplicaciones |
remoteSystem
|
Ejemplos
Consulte el ejemplo de código siguiente para ver el proceso de unión a una sesión remota (incluida la obtención de una referencia a una instancia de RemoteSystemSession ).
public async void JoinExistingSession() {
// request to join. sessionInfo has already been selected by user.
RemoteSystemSessionJoinResult joinResult = await sessionInfo.JoinAsync();
// process the result
if (joinResult.Status == RemoteSystemSessionJoinStatus.Success) {
// if the join was successful, acquire a reference to the session
currentSession = joinResult.Session;
// optionally handle the disconnected event
currentSession.Disconnected += async (sender, args) => {
// update the UI, using args.Reason
};
// update the UI with the session.DisplayName and
// session.ControllerDisplayName strings. Save a reference to
// this RemoteSystemSession, to use when the user selects
// this session from the UI
} else {
// join request failed. optionally update UI
}
}
Como alternativa, consulte el código siguiente para obtener un ejemplo de cómo crear una sesión remota y controlar las solicitudes de combinación.
public async void StartNewSharedExperience() {
var manager = new RemoteSystemSessionController("Bob’s Minecraft game");
// register the following code to handle the JoinRequested event
manager.JoinRequested += async (sender, args) => {
// Get the deferral
var deferral = args.GetDeferral();
// display the participant (args.JoinRequest.Participant) on UI, giving the
// user an opportunity to respond
// ...
// If the user chooses "accept", accept this remote system as a participant
args.JoinRequest.Accept();
};
// create and start the session
RemoteSystemSessionCreationResult createResult = await manager.CreateSessionAsync();
// handle the creation result
if (createResult.Status == RemoteSystemSessionCreationStatus.Success) {
// creation was successful
RemoteSystemSession currentSession = createResult.Session;
// optionally subscribe to the disconnection event
currentSession.Disconnected += async (sender, args) => {
// update the UI, using args.Reason
// ...
};
// Use session ...
} else if (createResult.Status == RemoteSystemSessionCreationStatus.SessionLimitsExceeded) {
// creation failed. Optionally update UI to indicate that there are too many sessions in progress
} else {
// creation failed for an unknown reason. Optionally update UI
}
}
Comentarios
Sesiones de sistema remoto forma parte del conjunto de características sistemas remotos más amplio. Permite a una aplicación establecer un objeto de sesión como un tercero intermedio que dos o más dispositivos pueden comunicarse continuamente, lo que permite una serie de nuevos escenarios entre dispositivos, como la mensajería remota de aplicaciones.
Una sesión que se ha unido está representada por un objeto RemoteSystemSession . Una sesión conocida sobre pero que no se ha unido está representada por un objeto RemoteSystemSessionInfo .
Propiedades
ControllerDisplayName |
Obtiene el nombre de la máquina del dispositivo que es el controlador de esta sesión remota. |
DisplayName |
Obtiene el nombre de acceso público para esta sesión remota, dada por el controlador de la sesión. |
Id |
Obtiene el identificador único de esta sesión remota. |
Métodos
Close() |
Cierra la sesión, desconectando a todos los participantes. |
CreateParticipantWatcher() |
Inicializa un RemoteSystemSessionParticipantWatcher para supervisar los participantes de esta sesión remota. |
CreateWatcher() |
Inicializa y devuelve un objeto RemoteSystemSessionWatcher para supervisar la presencia de sesiones remotas. |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
SendInvitationAsync(RemoteSystem) |
Invita a un dispositivo remoto determinado a unirse a esta sesión remota. |
Eventos
Disconnected |
Se genera cuando este dispositivo se ha desconectado de esta sesión remota. |