Freigeben über


VpnService.Builder.Establish Methode

Definition

Erstellen Sie eine VPN-Schnittstelle mit den Parametern, die für diesen Generator bereitgestellt werden.

[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

Gibt zurück

ParcelFileDescriptor der VPN-Schnittstelle oder null wenn die Anwendung nicht vorbereitet ist.

Attribute

Ausnahmen

wenn ein Parameter vom Betriebssystem nicht akzeptiert wird.

wenn ein Parameter nicht vom Betriebssystem angewendet werden kann.

wenn der Dienst nicht ordnungsgemäß deklariert ist.AndroidManifest.xml

Hinweise

Erstellen Sie eine VPN-Schnittstelle mit den Parametern, die für diesen Generator bereitgestellt werden. Die Schnittstelle funktioniert auf IP-Paketen, und ein Dateideskriptor wird für die Anwendung zurückgegeben, um darauf zuzugreifen. Jeder Lesevorgang ruft ein ausgehendes Paket ab, das an die Schnittstelle weitergeleitet wurde. Jeder Schreibvorgang fügt ein eingehendes Paket so ein, wie es von der Schnittstelle empfangen wurde. Der Dateideskriptor wird standardmäßig in den Nicht-Blockierungsmodus versetzt, um das Blockieren von Java-Threads zu vermeiden. Informationen zur vollständigen Verwendung des Dateideskriptors im nativen Bereich finden Sie unter ParcelFileDescriptor#detachFd(). Die Anwendung MUSS die Dateibeschreibung schließen, wenn die VPN-Verbindung beendet wird. Die VPN-Schnittstelle wird entfernt, und das Netzwerk wird automatisch vom System wiederhergestellt.

Um Konflikte zu vermeiden, kann es nur eine aktive VPN-Schnittstelle gleichzeitig geben. In der Regel werden Netzwerkparameter während der Lebensdauer einer VPN-Verbindung nie geändert. Es ist auch üblich, dass eine Anwendung einen neuen Dateideskriptor nach dem Schließen des vorherigen Erstellens erstellt. Es ist jedoch selten, aber nicht unmöglich, zwei Schnittstellen zu haben, während eine nahtlose Übergabe durchgeführt wird. In diesem Fall wird die alte Schnittstelle deaktiviert, wenn die neue erfolgreich erstellt wird. Beide Dateideskriptoren sind gültig, aber jetzt werden ausgehende Pakete an die neue Schnittstelle weitergeleitet. Daher muss die Anwendung nach dem Entwässern des alten Dateideskriptors sie schließen und mit der Verwendung des neuen Dateideskriptors beginnen. Wenn die neue Schnittstelle nicht erstellt werden kann, bleiben die vorhandene Schnittstelle und der dateideskriptor unverändert.

Eine Ausnahme wird ausgelöst, wenn die Schnittstelle aus irgendeinem Grund nicht erstellt werden kann. Diese Methode gibt jedoch zurück null , wenn die Anwendung nicht vorbereitet oder widerrufen wird. Dadurch können mögliche Racebedingungen zwischen anderen VPN-Anwendungen gelöst werden.

Java-Dokumentation für android.net.VpnService.Builder.establish().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen