Partager via


VpnService.Builder.Establish Méthode

Définition

Créez une interface VPN à l’aide des paramètres fournis à ce générateur.

[Android.Runtime.Register("establish", "()Landroid/os/ParcelFileDescriptor;", "GetEstablishHandler")]
public virtual Android.OS.ParcelFileDescriptor? Establish();
[<Android.Runtime.Register("establish", "()Landroid/os/ParcelFileDescriptor;", "GetEstablishHandler")>]
abstract member Establish : unit -> Android.OS.ParcelFileDescriptor
override this.Establish : unit -> Android.OS.ParcelFileDescriptor

Retours

ParcelFileDescriptor de l’interface VPN ou null si l’application n’est pas préparée.

Attributs

Exceptions

si un paramètre n’est pas accepté par le système d’exploitation.

si un paramètre ne peut pas être appliqué par le système d’exploitation.

si le service n’est pas correctement déclaré dans AndroidManifest.xml.

Remarques

Créez une interface VPN à l’aide des paramètres fournis à ce générateur. L’interface fonctionne sur les paquets IP et un descripteur de fichier est retourné pour que l’application y accède. Chaque lecture récupère un paquet sortant qui a été routé vers l’interface. Chaque écriture injecte un paquet entrant comme il a été reçu de l’interface. Le descripteur de fichier est placé en mode non bloquant par défaut pour éviter de bloquer les threads Java. Pour utiliser complètement le descripteur de fichier dans l’espace natif, consultez ParcelFileDescriptor#detachFd(). L’application DOIT fermer le descripteur de fichier lorsque la connexion VPN est terminée. L’interface VPN sera supprimée et le réseau sera restauré automatiquement par le système.

Pour éviter les conflits, il ne peut y avoir qu’une seule interface VPN active en même temps. En règle générale, les paramètres réseau ne sont jamais modifiés pendant la durée de vie d’une connexion VPN. Il est également courant pour une application de créer un descripteur de fichier après avoir fermé le précédent. Toutefois, il est rare, mais pas impossible d’avoir deux interfaces tout en effectuant une remise transparente. Dans ce cas, l’ancienne interface est désactivée lorsque la nouvelle est créée avec succès. Les descripteurs de fichiers sont valides, mais les paquets sortants seront routés vers la nouvelle interface. Par conséquent, après avoir vidé l’ancien descripteur de fichier, l’application DOIT la fermer et commencer à utiliser le nouveau descripteur de fichier. Si la nouvelle interface ne peut pas être créée, l’interface existante et son descripteur de fichier restent inchangés.

Une exception est levée si l’interface ne peut pas être créée pour une raison quelconque. Toutefois, cette méthode retourne null si l’application n’est pas préparée ou est révoquée. Cela permet de résoudre les conditions de concurrence possibles entre d’autres applications VPN.

Documentation Java pour android.net.VpnService.Builder.establish().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Voir aussi