語言

ConnectivityManager.RequestNetwork 方法

定義

多載

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback, Handler, Int32)

[Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;I)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Landroid_os_Handler_IHandler", ApiSince=26)]
public virtual void RequestNetwork(Android.Net.NetworkRequest request, Android.Net.ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler, int timeoutMs);
[<Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;I)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Landroid_os_Handler_IHandler", ApiSince=26)>]
abstract member RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * Android.OS.Handler * int -> unit
override this.RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * Android.OS.Handler * int -> unit

參數

request
NetworkRequest
handler
Handler
timeoutMs
Int32
屬性

備註

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

Java 文件 android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler, int)。

適用於

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback, Int32)

[Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;I)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_IHandler", ApiSince=26)]
public virtual void RequestNetwork(Android.Net.NetworkRequest request, Android.Net.ConnectivityManager.NetworkCallback networkCallback, int timeoutMs);
[<Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;I)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_IHandler", ApiSince=26)>]
abstract member RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * int -> unit
override this.RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * int -> unit

參數

request
NetworkRequest
timeoutMs
Int32
屬性

備註

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

Java 文件 android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, int)。

適用於

RequestNetwork(NetworkRequest, PendingIntent)

請求一個網路滿足一組 NetworkCapabilities。

[Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/app/PendingIntent;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_app_PendingIntent_Handler", ApiSince=22)]
public virtual void RequestNetwork(Android.Net.NetworkRequest request, Android.App.PendingIntent operation);
[<Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/app/PendingIntent;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_app_PendingIntent_Handler", ApiSince=22)>]
abstract member RequestNetwork : Android.Net.NetworkRequest * Android.App.PendingIntent -> unit
override this.RequestNetwork : Android.Net.NetworkRequest * Android.App.PendingIntent -> unit

參數

request
NetworkRequest

NetworkRequest 描述這個請求。

operation
PendingIntent

當網路可用時執行的動作(對應於通話內容 NetworkCallback#onAvailable )。 通常來自 PendingIntent#getBroadcast。 不可為空值。

屬性

備註

請求一個網路滿足一組 NetworkCapabilities。

此函式的行為與接受 NetworkCallback 的版本相同,但使用的是 NetworkCallback a PendingIntent 。 這表示請求可能會比呼叫應用程式更久,並在找到合適的網路時被回撥。

這個操作是一個意圖廣播,會發送到你註冊的 廣播接收器,或透過 <接收器>AndroidManifest.xml 檔案中的標籤

操作 Intent 會隨 Extra 傳送兩個額外值,一個 Network 是 type called 的 #EXTRA_NETWORK 額外值,另一個 NetworkRequest 是 typeed extra #EXTRA_NETWORK_REQUEST ,包含原始請求參數。 在完成意圖處理前,建立新的 NetworkCallback 基於網路的請求非常重要,否則意圖處理後不久就會被釋放。

如果已經註冊了這個意圖的請求(且定義為 Intent#filterEquals兩個意圖的相等),則該請求將被移除並以此意圖取代,實際上釋放了先前 NetworkRequest的 。

請求通常可透過撥打 #releaseNetworkRequest(android.app.PendingIntent)來解除。

目前尚不支援請求擁有上述或 NetworkCapabilities#NET_CAPABILITY_VALIDATEDNetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTALNetworkCapabilities 的網路,表示某個網路可能永遠無法達成,且在啟動網路前未知該網路是否能達到這些狀態,因此框架不知道如何滿足具備這些能力的請求。

為避免應用程式回調洩漏導致效能問題,系統會限制每個應用程式的未解決請求數為 100 筆(以 UID 識別),且此方法 #registerNetworkCallback 的所有變體共享,且 也包含 ConnectivityDiagnosticsManager#registerConnectivityDiagnosticsCallback。 使用此方法請求網路將計入此限制。 若超過此限制,將會拋出例外。 為避免此問題並節省資源,請務必將回撥註為 或 取消註冊。#unregisterNetworkCallback(PendingIntent)#releaseNetworkRequest(PendingIntent)

此方法要求呼叫者持有 android.Manifest.permission#CHANGE_NETWORK_STATE 權限或修改系統設定的能力,由 決定 android.provider.Settings.System#canWrite。

Java 文件 android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.app.PendingIntent)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback)

請求一個網路滿足一組 NetworkCapabilities。

[Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Handler")]
public virtual void RequestNetwork(Android.Net.NetworkRequest request, Android.Net.ConnectivityManager.NetworkCallback networkCallback);
[<Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Handler")>]
abstract member RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback -> unit
override this.RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback -> unit

參數

request
NetworkRequest

NetworkRequest 描述這個請求。

networkCallback
ConnectivityManager.NetworkCallback

這個請求將被使用。ConnectivityManager.NetworkCallback 請注意,回撥不能被分享——它們會唯一指定這個請求。

屬性

例外狀況

若 request 指定任意可變 NetworkCapabilities。

備註

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback, Handler)

[Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Landroid_os_Handler_Handler", ApiSince=26)]
public virtual void RequestNetwork(Android.Net.NetworkRequest request, Android.Net.ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler);
[<Android.Runtime.Register("requestNetwork", "(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V", "GetRequestNetwork_Landroid_net_NetworkRequest_Landroid_net_ConnectivityManager_NetworkCallback_Landroid_os_Handler_Handler", ApiSince=26)>]
abstract member RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * Android.OS.Handler -> unit
override this.RequestNetwork : Android.Net.NetworkRequest * Android.Net.ConnectivityManager.NetworkCallback * Android.OS.Handler -> unit

參數

request
NetworkRequest
handler
Handler
屬性

備註

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

Java 文件 android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler)。

適用於