VpnService.Builder.Establish Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Crie uma interface VPN usando os parâmetros fornecidos a esse construtor.
[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
Retornos
ParcelFileDescriptor
da interface VPN ou null
se o aplicativo não estiver preparado.
- Atributos
Exceções
se um parâmetro não for aceito pelo sistema operacional.
se um parâmetro não puder ser aplicado pelo sistema operacional.
se o serviço não estiver devidamente declarado no AndroidManifest.xml
.
Comentários
Crie uma interface VPN usando os parâmetros fornecidos a esse construtor. A interface funciona em pacotes IP e um descritor de arquivo é retornado para o aplicativo acessá-los. Cada leitura recupera um pacote de saída que foi roteado para a interface. Cada gravação injeta um pacote de entrada exatamente como foi recebido da interface. O descritor de arquivo é colocado no modo sem bloqueio por padrão para evitar o bloqueio de threads Java. Para usar o descritor de arquivo completamente no espaço nativo, consulte ParcelFileDescriptor#detachFd()
. O aplicativo DEVE fechar o descritor de arquivo quando a conexão VPN for encerrada. A interface VPN será removida e a rede será restaurada pelo sistema automaticamente.
Para evitar conflitos, pode haver apenas uma interface VPN ativa ao mesmo tempo. Normalmente, os parâmetros de rede nunca são alterados durante a vida útil de uma conexão VPN. Também é comum que um aplicativo crie um novo descritor de arquivo após fechar o anterior. No entanto, é raro, mas não impossível, ter duas interfaces durante a execução de uma transferência perfeita. Nesse caso, a interface antiga será desativada quando a nova for criada com êxito. Ambos os descritores de arquivo são válidos, mas agora os pacotes de saída serão roteados para a nova interface. Portanto, depois de drenar o descritor de arquivo antigo, o aplicativo DEVE fechá-lo e começar a usar o novo descritor de arquivo. Se a nova interface não puder ser criada, a interface existente e seu descritor de arquivo permanecerão intocados.
Uma exceção será lançada se a interface não puder ser criada por qualquer motivo. No entanto, esse método retorna null
se o aplicativo não estiver preparado ou for revogado. Isso ajuda a resolver possíveis condições de corrida entre outros aplicativos VPN.
Documentação Java para android.net.VpnService.Builder.establish()
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.