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 连接的生存期内永远不会更改。 应用程序在关闭前一个描述符后也经常创建新的文件描述符。 但是,执行无缝交接时,很少但不可能有两个接口。 在这种情况下,成功创建新接口时,将停用旧接口。 这两个文件描述符都有效,但现在传出数据包将路由到新接口。 因此,在清空旧文件描述符后,应用程序必须关闭它并开始使用新文件描述符。 如果无法创建新接口,则现有接口及其文件描述符保持不变。
如果由于任何原因无法创建接口,将引发异常。 但是,此方法返回 null
未准备或吊销应用程序。 这有助于解决其他 VPN 应用程序之间的可能争用情况。
适用于 . 的 android.net.VpnService.Builder.establish()
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。