Freigeben über


ConnectivityManager.RequestNetwork Method

Definition

Overloads

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

Request a network to satisfy a set of NetworkCapabilities.

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback)

Request a network to satisfy a set of NetworkCapabilities.

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback, Handler)

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

Parameters

request
NetworkRequest
handler
Handler
timeoutMs
Int32
Attributes

Remarks

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to

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

Parameters

request
NetworkRequest
timeoutMs
Int32
Attributes

Remarks

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to

RequestNetwork(NetworkRequest, PendingIntent)

Request a network to satisfy a set of 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

Parameters

request
NetworkRequest

NetworkRequest describing this request.

operation
PendingIntent

Action to perform when the network is available (corresponds to the NetworkCallback#onAvailable call. Typically comes from PendingIntent#getBroadcast. Cannot be null.

Attributes

Remarks

Request a network to satisfy a set of NetworkCapabilities.

This function behaves identically to the version that takes a NetworkCallback, but instead of NetworkCallback a PendingIntent is used. This means the request may outlive the calling application and get called back when a suitable network is found.

The operation is an Intent broadcast that goes to a broadcast receiver that you registered with Context#registerReceiver or through the &lt;receiver&gt; tag in an AndroidManifest.xml file

The operation Intent is delivered with two extras, a Network typed extra called #EXTRA_NETWORK and a NetworkRequest typed extra called #EXTRA_NETWORK_REQUEST containing the original requests parameters. It is important to create a new, NetworkCallback based request before completing the processing of the Intent to reserve the network or it will be released shortly after the Intent is processed.

If there is already a request for this Intent registered (with the equality of two Intents defined by Intent#filterEquals), then it will be removed and replaced by this one, effectively releasing the previous NetworkRequest.

The request may be released normally by calling #releaseNetworkRequest(android.app.PendingIntent).

It is presently unsupported to request a network with either NetworkCapabilities#NET_CAPABILITY_VALIDATED or NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL as these NetworkCapabilities represent states that a particular network may never attain, and whether a network will attain these states is unknown prior to bringing up the network so the framework does not know how to go about satisfying a request with these capabilities.

To avoid performance issues due to apps leaking callbacks, the system will limit the number of outstanding requests to 100 per app (identified by their UID), shared with all variants of this method, of #registerNetworkCallback as well as ConnectivityDiagnosticsManager#registerConnectivityDiagnosticsCallback. Requesting a network with this method will count toward this limit. If this limit is exceeded, an exception will be thrown. To avoid hitting this issue and to conserve resources, make sure to unregister the callbacks with #unregisterNetworkCallback(PendingIntent) or #releaseNetworkRequest(PendingIntent).

This method requires the caller to hold either the android.Manifest.permission#CHANGE_NETWORK_STATE permission or the ability to modify system settings as determined by android.provider.Settings.System#canWrite.

Java documentation for android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.app.PendingIntent).

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback)

Request a network to satisfy a set of 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

Parameters

request
NetworkRequest

NetworkRequest describing this request.

networkCallback
ConnectivityManager.NetworkCallback

The ConnectivityManager.NetworkCallback to be utilized for this request. Note the callback must not be shared - they uniquely specify this request.

Attributes

Exceptions

if request specifies any mutable NetworkCapabilities.

Remarks

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to

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

Parameters

request
NetworkRequest
handler
Handler
Attributes

Remarks

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to