Compartir a través de


RemoteSystemSession Clase

Definición

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
Object Platform::Object IInspectable RemoteSystemSession
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.

Se aplica a