ConnectivityManager.RequestNetwork Methode

Definition

Überlädt

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

Parameter

request
NetworkRequest
handler
Handler
timeoutMs
Int32
Attribute

Hinweise

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Parameter

request
NetworkRequest
timeoutMs
Int32
Attribute

Hinweise

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

RequestNetwork(NetworkRequest, PendingIntent)

Fordern Sie ein Netzwerk an, um eine Reihe von 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

Parameter

request
NetworkRequest

NetworkRequest beschreiben diese Anforderung.

operation
PendingIntent

Aktion, die ausgeführt werden soll, wenn das Netzwerk verfügbar ist (entspricht dem NetworkCallback#onAvailable Aufruf. Kommt in der Regel von PendingIntent#getBroadcast. Darf nicht null sein.

Attribute

Hinweise

Fordern Sie ein Netzwerk an, um eine Reihe von NetworkCapabilities.

Diese Funktion verhält sich identisch mit der Version, die ein NetworkCallback verwendet, aber nicht NetworkCallbackPendingIntent verwendet wird. Dies bedeutet, dass die Anforderung die aufrufende Anwendung überdauert und zurückrufen kann, wenn ein geeignetes Netzwerk gefunden wird.

Der Vorgang ist eine Intent-Übertragung, die an einen Übertragungsempfänger geht, den Sie bei oder über das < registriert haben. Receiver> Tag in einer AndroidManifest.xml Datei

Der Vorgang Intent wird mit zwei Extras geliefert, einem Network typierten extra aufgerufenen extra aufgerufenen #EXTRA_NETWORK und einem NetworkRequest typierten extra aufgerufen #EXTRA_NETWORK_REQUEST , das die ursprünglichen Anforderungsparameter enthält. Es ist wichtig, eine neue, basierte Anforderung zu erstellen, NetworkCallback bevor die Verarbeitung des Intent abgeschlossen wird, um das Netzwerk zu reservieren, oder es wird kurz nach dem Verarbeiten der Absicht freigegeben.

Wenn bereits eine Anforderung für diesen Intent registriert ist (mit der Gleichheit von zwei von ) definierten Intent#filterEqualsAbsichten), wird sie entfernt und durch diese ersetzt, effektiv die vorherige NetworkRequestfreigabe .

Die Anforderung kann normal durch Anrufe #releaseNetworkRequest(android.app.PendingIntent)freigegeben werden.

Es wird derzeit nicht unterstützt, ein Netzwerk mit oder NetworkCapabilities#NET_CAPABILITY_VALIDATEDNetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL wie diese NetworkCapabilities angeben, dass ein bestimmtes Netzwerk nie erreicht werden kann, und ob ein Netzwerk diese Zustände erreichen wird, ist unbekannt, bevor das Netzwerk aufgenommen wird, damit das Framework nicht weiß, wie eine Anforderung mit diesen Funktionen erfüllt wird.

Um Leistungsprobleme aufgrund von Apps zu vermeiden, die Rückrufe durchlecken, beschränkt das System die Anzahl der ausstehenden Anforderungen auf 100 pro App (identifiziert durch ihre UID), die für alle Varianten dieser Methode sowie für alle Varianten dieser Methode #registerNetworkCallbackConnectivityDiagnosticsManager#registerConnectivityDiagnosticsCallbackfreigegeben ist. Das Anfordern eines Netzwerks mit dieser Methode zählt zu diesem Grenzwert. Wenn dieser Grenzwert überschritten wird, wird eine Ausnahme ausgelöst. Um das Problem zu vermeiden und Ressourcen zu sparen, stellen Sie sicher, dass Sie die Registrierung der Rückrufe mit #unregisterNetworkCallback(PendingIntent) oder #releaseNetworkRequest(PendingIntent)aufheben.

Für diese Methode muss der Aufrufer entweder die android.Manifest.permission#CHANGE_NETWORK_STATE Berechtigung oder die Möglichkeit zum Ändern von Systemeinstellungen enthalten, wie es bestimmt ist android.provider.Settings.System#canWrite.

Java Dokumentation für android.net.ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.app.PendingIntent).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

RequestNetwork(NetworkRequest, ConnectivityManager+NetworkCallback)

Fordern Sie ein Netzwerk an, um eine Reihe von 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

Parameter

request
NetworkRequest

NetworkRequest beschreiben diese Anforderung.

networkCallback
ConnectivityManager.NetworkCallback

Der ConnectivityManager.NetworkCallback für diese Anforderung zu verwendende Beachten Sie, dass der Rückruf nicht freigegeben werden darf – sie geben diese Anforderung eindeutig an.

Attribute

Ausnahmen

if request specifies any mutable NetworkCapabilities.

Hinweise

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Parameter

request
NetworkRequest
handler
Handler
Attribute

Hinweise

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: