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 vom Betriebssystem nicht angewendet werden kann.

, wenn der Dienst in AndroidManifest.xmlnicht ordnungsgemäß deklariert ist.

Hinweise

Erstellen Sie eine VPN-Schnittstelle mit den Parametern, die für diesen Generator bereitgestellt werden. Die Schnittstelle funktioniert mit IP-Paketen, und ein Dateideskriptor wird zurückgegeben, damit die Anwendung darauf zugreifen kann. 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 blockierenden Modus 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 den Dateideskriptor 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 nach dem Schließen des vorherigen einen neuen Dateideskriptor erstellt. Es ist jedoch selten, aber nicht unmöglich, zwei Schnittstellen bei einer nahtlosen Übergabe zu haben. In diesem Fall wird die alte Schnittstelle deaktiviert, wenn die neue erfolgreich erstellt wurde. Beide Dateideskriptoren sind gültig, aber jetzt werden ausgehende Pakete an die neue Schnittstelle weitergeleitet. Daher MUSS die Anwendung nach dem Leeren des alten Dateideskriptors ihn schließen und mit der Verwendung des neuen Dateideskriptors beginnen. Wenn die neue Schnittstelle nicht erstellt werden kann, bleiben die vorhandene Schnittstelle und deren 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. Dies hilft, mögliche Racebedingungen zwischen anderen VPN-Anwendungen zu lösen.

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

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen