VpnService.Builder.Establish Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Creare un'interfaccia VPN usando i parametri forniti a questo generatore.
[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
Restituisce
ParcelFileDescriptor
dell'interfaccia VPN o null
se l'applicazione non è preparata.
- Attributi
Eccezioni
se un parametro non viene accettato dal sistema operativo.
se non è possibile applicare un parametro dal sistema operativo.
se il servizio non è dichiarato correttamente in AndroidManifest.xml
.
Commenti
Creare un'interfaccia VPN usando i parametri forniti a questo generatore. L'interfaccia funziona sui pacchetti IP e viene restituito un descrittore di file per consentire all'applicazione di accedervi. Ogni lettura recupera un pacchetto in uscita indirizzato all'interfaccia. Ogni scrittura inserisce un pacchetto in ingresso proprio come è stato ricevuto dall'interfaccia. Il descrittore di file viene inserito in modalità non bloccante per impostazione predefinita per evitare di bloccare i thread Java. Per usare completamente il descrittore di file nello spazio nativo, vedere ParcelFileDescriptor#detachFd()
. L'applicazione DEVE chiudere il descrittore di file quando la connessione VPN viene terminata. L'interfaccia VPN verrà rimossa e la rete verrà ripristinata automaticamente dal sistema.
Per evitare conflitti, può essere presente una sola interfaccia VPN attiva contemporaneamente. In genere i parametri di rete non vengono mai modificati durante la durata di una connessione VPN. È anche comune che un'applicazione crei un nuovo descrittore di file dopo aver chiuso quello precedente. Tuttavia, è raro ma non impossibile avere due interfacce durante l'esecuzione di un handover senza interruzioni. In questo caso, l'interfaccia precedente verrà disattivata quando ne viene creata una nuova. Entrambi i descrittori di file sono validi, ma ora i pacchetti in uscita verranno instradati alla nuova interfaccia. Pertanto, dopo aver svuotato il descrittore di file precedente, l'applicazione DEVE chiuderla e iniziare a usare il nuovo descrittore di file. Se non è possibile creare la nuova interfaccia, l'interfaccia esistente e il relativo descrittore di file rimangono invariati.
Se non è possibile creare l'interfaccia per qualsiasi motivo, verrà generata un'eccezione. Tuttavia, questo metodo restituisce null
se l'applicazione non è preparata o viene revocata. Ciò consente di risolvere le possibili race condition tra altre applicazioni VPN.
Documentazione java per android.net.VpnService.Builder.establish()
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.