共用方式為


VpnService.Builder.Establish 方法

定義

使用提供給此產生器的參數建立 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 屬性授權中所述的詞彙使用。

適用於

另請參閱