Condividi tramite


VpnService.Builder.Establish Metodo

Definizione

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.

Si applica a

Vedi anche