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
属性

注釈

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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
属性

注釈

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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から取得されます。 null にすることはできません。

属性

注釈

一連の NetworkCapabilitiesを満たすようにネットワークを要求します。

この関数は NetworkCallback を受け取るバージョンと同じように動作しますが、 NetworkCallback の代わりに PendingIntent が使用されます。 これは、要求が呼び出し元のアプリケーションよりも長く、適切なネットワークが見つかったときに呼び出される可能性があることを意味します。

この操作は、 または < を使用して登録したブロードキャスト レシーバーに送るインテント ブロードキャストです。receiver>AndroidManifest.xml ファイル内のタグ

操作インテントには、#EXTRA_NETWORKと呼ばれるNetwork型指定されたエクストラと、元の要求パラメーターを含む#EXTRA_NETWORK_REQUEST呼び出されたNetworkRequest型指定された extra という 2 つのエクストラが提供されます。 ネットワークを予約するインテントの処理を完了する前に、新しい NetworkCallback ベースの要求を作成することが重要です。または、インテントが処理された直後に解放されます。

( Intent#filterEquals によって定義された 2 つの意図の等価性を持つ) この意図の要求が既に登録されている場合は、削除され、これに置き換えられ、前の NetworkRequestが実質的に解放されます。

要求は、 #releaseNetworkRequest(android.app.PendingIntent)を呼び出すことによって通常どおりに解放される場合があります。

現時点では、 NetworkCapabilities#NET_CAPABILITY_VALIDATED または NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL を持つネットワークを要求することはサポートされていません。これらの NetworkCapabilities は、特定のネットワークが達成されない可能性があることを表し、ネットワークがこれらの状態を取得するかどうかは、ネットワークを起動する前に不明であるため、フレームワークはこれらの機能を使用して要求を満たす方法を認識しません。

アプリによるコールバックのリークによるパフォーマンスの問題を回避するために、システムでは、未処理の要求の数をアプリごとに 100 個 (UID で識別) に制限し、このメソッドのすべてのバリアント ( #registerNetworkCallback および ConnectivityDiagnosticsManager#registerConnectivityDiagnosticsCallback) と共有します。 この方法でネットワークを要求すると、この制限にカウントされます。 この制限を超えると、例外がスローされます。 この問題が発生しないようにし、リソースを節約するには、 #unregisterNetworkCallback(PendingIntent) または #releaseNetworkRequest(PendingIntent)を使用してコールバックの登録を解除してください。

このメソッドでは、呼び出し元が android.Manifest.permission#CHANGE_NETWORK_STATE アクセス許可を保持するか、 android.provider.Settings.System#canWriteによって決定されたシステム設定を変更する機能を保持する必要があります。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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 。 コールバックは共有しないでください。この要求を一意に指定します。

属性

例外

変更可能な指定する場合は

注釈

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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
属性

注釈

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象