VpnService.Builder.Establish 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 작성기에서 제공하는 매개 변수를 사용하여 VPN 인터페이스를 만듭니다.
[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
반환
ParcelFileDescriptor
VPN 인터페이스 또는 null
애플리케이션이 준비되지 않은 경우
- 특성
예외
운영 체제에서 매개 변수를 허용하지 않는 경우
운영 체제에서 매개 변수를 적용할 수 없는 경우
에서 서비스가 제대로 선언되지 AndroidManifest.xml
않은 경우
설명
이 작성기에서 제공하는 매개 변수를 사용하여 VPN 인터페이스를 만듭니다. 인터페이스는 IP 패킷에서 작동하며 애플리케이션에서 액세스할 수 있도록 파일 설명자가 반환됩니다. 각 읽기는 인터페이스로 라우팅된 나가는 패킷을 검색합니다. 각 쓰기는 인터페이스에서 받은 것처럼 들어오는 패킷을 삽입합니다. 파일 설명자는 Java 스레드 차단을 방지하기 위해 기본적으로 비차단 모드로 전환됩니다. 네이티브 공간에서 파일 설명자를 완전히 사용하려면 다음을 참조하세요 ParcelFileDescriptor#detachFd()
. VPN 연결이 종료되면 애플리케이션에서 파일 설명자를 닫아야 합니다. VPN 인터페이스가 제거되고 시스템이 네트워크를 자동으로 복원합니다.
충돌을 방지하기 위해 동시에 하나의 활성 VPN 인터페이스만 있을 수 있습니다. 일반적으로 네트워크 매개 변수는 VPN 연결의 수명 동안 변경되지 않습니다. 또한 애플리케이션은 이전 파일을 닫은 후 새 파일 설명자를 만드는 것이 일반적입니다. 그러나 원활한 인계를 수행하는 동안 두 인터페이스를 갖는 것은 드물지만 불가능하지는 않습니다. 이 경우 새 인터페이스가 성공적으로 만들어지면 이전 인터페이스가 비활성화됩니다. 두 파일 설명자는 모두 유효하지만 이제 나가는 패킷이 새 인터페이스로 라우팅됩니다. 따라서 이전 파일 설명자를 드레이닝한 후 애플리케이션에서 파일을 닫고 새 파일 설명자 사용을 시작해야 합니다. 새 인터페이스를 만들 수 없는 경우 기존 인터페이스와 해당 파일 설명자는 그대로 유지됩니다.
어떤 이유로든 인터페이스를 만들 수 없는 경우 예외가 throw됩니다. 그러나 이 메서드는 애플리케이션이 준비되지 않았거나 해지된 경우 반환 null
됩니다. 이렇게 하면 다른 VPN 애플리케이션 간의 가능한 경합 상태를 해결할 수 있습니다.
에 대한 android.net.VpnService.Builder.establish()
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.