Most visited

Recently visited

Added in API level 1

ConnectivityManager

public class ConnectivityManager
extends Object

java.lang.Object
   ↳ android.net.ConnectivityManager


回答关于网络连接状态的查询的类。 它还会在网络连接发生变化时通知应用程序。 通过调用Context.getSystemService(Context.CONNECTIVITY_SERVICE)获取此类的实例。

这个班的主要职责是:

  1. Monitor network connections (Wi-Fi, GPRS, UMTS, etc.)
  2. Send broadcast intents when network connectivity changes
  3. Attempt to "fail over" to another network when connectivity to a network is lost
  4. Provide an API that allows applications to query the coarse-grained or fine-grained state of the available networks
  5. Provide an API that allows applications to request and select networks for their data traffic

Summary

Nested classes

class ConnectivityManager.NetworkCallback

NetworkRequest回调的基类。

interface ConnectivityManager.OnNetworkActiveListener

回拨用于addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener)以查明系统默认网络何时进入高功率状态。

Constants

String ACTION_BACKGROUND_DATA_SETTING_CHANGED

该常数在API级别16中已弃用。从ICE_CREAM_SANDWICH ,背景数据的可用性取决于几个组合因素,并且不再发送此广播。 相反,当背景数据不可用时, getActiveNetworkInfo()现在将显示为断开连接。 在平台升级后首次启动期间,如果升级前getBackgroundDataSetting()false ,则此广播将发送一次。

String ACTION_CAPTIVE_PORTAL_SIGN_IN

该设备已连接到已提供强制门户的网络,该门户阻止Internet连接。

String ACTION_RESTRICT_BACKGROUND_CHANGED

后台测量的网络活动限制已发生变化。

String CONNECTIVITY_ACTION

网络连接发生了变化。

int DEFAULT_NETWORK_PREFERENCE

这个常量在API级别18中已被弃用。由于我们现在支持更多的网络,因此单一网络默认网络首选项不能真正表达层次结构。 相反,缺省值由config.xml中的networkAttributes定义。 您可以通过从应用程序调用getNetworkPreference()来确定当前值。

String EXTRA_CAPTIVE_PORTAL

包含 ACTION_CAPTIVE_PORTAL_SIGN_IN意图的 CaptivePortal对象的查找键。

String EXTRA_CAPTIVE_PORTAL_URL

将网址传递到强制性门户登录活动的关键。

String EXTRA_EXTRA_INFO

字符串的查找键,可提供有关网络状态的可选附加信息。

String EXTRA_IS_FAILOVER

布尔型的查找键,指示连接事件是否针对连接管理器在另一个网络上断开连接后正在故障切换的网络。

String EXTRA_NETWORK

在为应用程序请求成功找到网络后,包含在意图中的 Network对象的查找键。

String EXTRA_NETWORK_INFO

此常量在API级别14中已弃用。由于NetworkInfo可能因UID而异,因此应用程序应始终通过getActiveNetworkInfo()获取网络信息。

String EXTRA_NETWORK_REQUEST

在为应用程序请求成功找到网络后,包含在意图中的 NetworkRequest对象的查找键。

String EXTRA_NETWORK_TYPE

触发 CONNECTIVITY_ACTION广播的网络类型。

String EXTRA_NO_CONNECTIVITY

布尔型的查找键,指示是否完全缺少连接,即没有网络可用。

String EXTRA_OTHER_NETWORK_INFO

NetworkInfo对象的查找键。

String EXTRA_REASON

字符串的查找键,指示尝试连接到网络的原因失败。

int RESTRICT_BACKGROUND_STATUS_DISABLED

当应用程序在后台运行时,设备不限制测量的网络活动。

int RESTRICT_BACKGROUND_STATUS_ENABLED

当应用程序在后台运行时,设备限制测量的网络活动。

int RESTRICT_BACKGROUND_STATUS_WHITELISTED

当应用程序在后台运行时,设备限制测量的网络活动,但允许应用程序绕过它。

int TYPE_BLUETOOTH

蓝牙数据连接。

int TYPE_DUMMY

虚拟数据连接。

int TYPE_ETHERNET

以太网数据连接。

int TYPE_MOBILE

移动数据连接。

int TYPE_MOBILE_DUN

一个DUN特定的移动数据连接。

int TYPE_MOBILE_HIPRI

此常数在API级别23中已弃用。应用程序应改用requestNetwork(NetworkRequest, NetworkCallback)来请求使用TRANSPORT_CELLULAR传输的网络。

int TYPE_MOBILE_MMS

此常量在API级别23中已弃用。应用程序应改用requestNetwork(NetworkRequest, NetworkCallback)来请求提供NET_CAPABILITY_MMS功能的网络。

int TYPE_MOBILE_SUPL

此常量在API级别23中已弃用。应用程序应改用requestNetwork(NetworkRequest, NetworkCallback)来请求提供NET_CAPABILITY_SUPL功能的网络。

int TYPE_VPN

使用一个或多个本地承载的虚拟网络。

int TYPE_WIFI

WIFI数据连接。

int TYPE_WIMAX

WiMAX数据连接。

Public methods

void addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener l)

当系统的默认数据网络处于活动状态时,开始收听报告,这意味着现在是执行网络流量的好时机。

boolean bindProcessToNetwork(Network network)

将当前进程绑定到 network

Network getActiveNetwork()

返回与当前活动的默认数据网络相对应的 Network对象。

NetworkInfo getActiveNetworkInfo()

返回有关当前活动默认数据网络的详细信息。

NetworkInfo[] getAllNetworkInfo()

此方法在API级别23中已弃用。此方法不支持相同类型的多个连接网络。 改为使用getAllNetworks()getNetworkInfo(android.net.Network)

Network[] getAllNetworks()

返回框架当前跟踪的所有 Network的数组。

boolean getBackgroundDataSetting()

此方法在API级别14中已弃用。从ICE_CREAM_SANDWICH ,背景数据的可用性取决于几个组合因子,并且此方法始终返回true 相反,当背景数据不可用时, getActiveNetworkInfo()现在将显示为断开连接。

Network getBoundNetworkForProcess()

返回 Network当前通过绑定到这个过程 bindProcessToNetwork(Network) ,或 null如果没有 Network明确的约束。

ProxyInfo getDefaultProxy()

获取当前的默认HTTP代理设置。

LinkProperties getLinkProperties(Network network)

获取 LinkProperties对于给定 Network

NetworkCapabilities getNetworkCapabilities(Network network)

获取 NetworkCapabilities对于给定 Network

NetworkInfo getNetworkInfo(int networkType)

此方法在API级别23中已弃用。此方法不支持相同类型的多个连接网络。 改为使用getAllNetworks()getNetworkInfo(android.net.Network)

NetworkInfo getNetworkInfo(Network network)

返回有关特定网络的连接状态信息。

int getNetworkPreference()

此方法在API级别21中已被弃用。功能已被删除,因为它不再有意义,有两个以上的网络 - 我们需要一个数组来表示偏好。 相反,我们使用网络的动态网络属性来描述它们的优先级。

static Network getProcessDefaultNetwork()

此方法在API级别23中已弃用。使用此函数可能会导致引发其他功能IllegalStateException 改为使用getBoundNetworkForProcess() getBoundNetworkForProcess是直接替换。

int getRestrictBackgroundStatus()

确定调用应用程序在后台运行时是否受到计量网络限制的影响。

boolean isActiveNetworkMetered()

返回当前活动的数据网络是否被测量。

boolean isDefaultNetworkActive()

返回数据网络当前是否处于活动状态。

static boolean isNetworkTypeValid(int networkType)

此方法在API级别23中已弃用。接受网络类型的所有API均已弃用。 应该不需要验证网络类型。

void registerDefaultNetworkCallback(ConnectivityManager.NetworkCallback networkCallback)

注册接收有关系统默认网络更改的通知。

void registerNetworkCallback(NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback)

注册接收有关满足给定 NetworkRequest所有网络的通知。

void registerNetworkCallback(NetworkRequest request, PendingIntent operation)

当满足给定的 NetworkRequest的网络可用时,注册待发送的PendingIntent。

void releaseNetworkRequest(PendingIntent operation)

删除通过 requestNetwork(NetworkRequest, android.app.PendingIntent)发出的请求

此方法在释放网络资源和断开连接方面与 unregisterNetworkCallback(android.app.PendingIntent)具有相同的行为。

void removeDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener l)

删除先前用 addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener)注册的网络主动侦听 addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener)

void reportBadNetwork(Network network)

此方法在API级别23中已被弃用。使用reportNetworkConnectivity(Network, boolean)可以报告工作连接和非工作连接。

void reportNetworkConnectivity(Network network, boolean hasConnectivity)

向框架报告网络是否具有连通性。

boolean requestBandwidthUpdate(Network network)

请求给定 Network带宽更新并返回ConnectivityService是否接受更新请求。

void requestNetwork(NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback)

要求网络满足一组 NetworkCapabilities

void requestNetwork(NetworkRequest request, PendingIntent operation)

请求网络满足一组 NetworkCapabilities

boolean requestRouteToHost(int networkType, int hostAddress)

该方法在有利于的弃用API级21被废弃requestNetwork(NetworkRequest, NetworkCallback)bindProcessToNetwork(Network)getSocketFactory() API。 M及更高版本中,此方法不受支持,如果调用将抛出UnsupportedOperationException

void setNetworkPreference(int preference)

此方法在API级别21中已被弃用。功能已被删除,因为它不再有意义,有两个以上的网络 - 我们需要一个数组来表示偏好。 相反,我们使用网络的动态网络属性来描述它们的优先级。

static boolean setProcessDefaultNetwork(Network network)

此方法在API级别23中已弃用。此函数可能会抛出IllegalStateException 改为使用bindProcessToNetwork(Network) bindProcessToNetwork是直接替代品。

int startUsingNetworkFeature(int networkType, String feature)

此方法在API级别21中已弃用。弃用赞成清洁requestNetwork(NetworkRequest, NetworkCallback) API。 M及更高版本中,此方法不受支持,如果调用将抛出UnsupportedOperationException

int stopUsingNetworkFeature(int networkType, String feature)

此方法在API级别21中已被弃用。弃用赞成清洁unregisterNetworkCallback(NetworkCallback) API。 M及更高版本中,此方法不受支持,如果调用将抛出UnsupportedOperationException

void unregisterNetworkCallback(ConnectivityManager.NetworkCallback networkCallback)

取消注册关于并可能释放来自 requestNetwork(NetworkRequest, NetworkCallback)registerNetworkCallback(NetworkRequest, NetworkCallback)调用的网络的 registerNetworkCallback(NetworkRequest, NetworkCallback)叫。

void unregisterNetworkCallback(PendingIntent operation)

取消注册以前通过 registerNetworkCallback(NetworkRequest, android.app.PendingIntent)注册的回 registerNetworkCallback(NetworkRequest, android.app.PendingIntent)

Inherited methods

From class java.lang.Object

Constants

ACTION_BACKGROUND_DATA_SETTING_CHANGED

Added in API level 3
String ACTION_BACKGROUND_DATA_SETTING_CHANGED

此常数在API级别16中已弃用。
ICE_CREAM_SANDWICH ,背景数据的可用性取决于几个组合因素,并且不再发送该广播。 相反,当背景数据不可用时, getActiveNetworkInfo()现在将显示为已断开连接。 在平台升级后首次启动期间,如果升级前getBackgroundDataSetting()false ,则此广播将发送一次。

广播动作:背景数据使用设置已更改值。 使用getBackgroundDataSetting()获取当前值。

如果一个应用程序在后台使用网络,它应该监听这个广播,如果值为 false ,则停止使用后台数据。

常量值:“android.net.conn.BACKGROUND_DATA_SETTING_CHANGED”

ACTION_CAPTIVE_PORTAL_SIGN_IN

Added in API level 23
String ACTION_CAPTIVE_PORTAL_SIGN_IN

该设备已连接到已提供强制门户的网络,该门户阻止Internet连接。 向用户呈现了需要网络登录的通知,并且用户调用了通知的操作,表明他们希望登录到网络。 处理此活动的应用程序应便于登录到网络。 此操作包括一个Network键入的额外名为EXTRA_NETWORK ,表示呈现强制门户的网络; 所有与强制门户的通信都必须使用这个Network对象完成。

This activity includes a CaptivePortal extra named EXTRA_CAPTIVE_PORTAL that can be used to indicate different outcomes of the captive portal sign in to the system:
  • When the app handling this action believes the user has signed in to the network and the captive portal has been dismissed, the app should call reportCaptivePortalDismissed() so the system can reevaluate the network. If reevaluation finds the network no longer subject to a captive portal, the network may become the default active data network.
  • When the app handling this action believes the user explicitly wants to ignore the captive portal and the network, the app should call ignoreNetwork().

常量值:“android.net.conn.CAPTIVE_PORTAL”

ACTION_RESTRICT_BACKGROUND_CHANGED

Added in API level 24
String ACTION_RESTRICT_BACKGROUND_CHANGED

后台测量的网络活动限制已发生变化。

应用程序应该调用 getRestrictBackgroundStatus()来检查限制是否适用于它们。

这只会发送给注册的接收者,而不是接收者。

常量值:“android.net.conn.RESTRICT_BACKGROUND_CHANGED”

CONNECTIVITY_ACTION

Added in API level 1
String CONNECTIVITY_ACTION

网络连接发生了变化。 默认连接已建立或丢失。 受影响网络的NetworkInfo作为额外发送; 应该咨询看看发生了什么样的连接事件。

If this is a connection that was the result of failing over from a disconnected network, then the FAILOVER_CONNECTION boolean extra is set to true.

For a loss of connectivity, if the connectivity manager is attempting to connect (or has already connected) to another network, the NetworkInfo for the new network is also passed as an extra. This lets any receivers of the broadcast know that they should not necessarily tell the user that no data traffic will be possible. Instead, the receiver should expect another broadcast soon, indicating either that the failover attempt succeeded (and so there is still overall data connectivity), or that the failover attempt failed, meaning that all connectivity has been lost.

For a disconnect event, the boolean extra EXTRA_NO_CONNECTIVITY is set to true if there are no connected networks at all.

常量值:“android.net.conn.CONNECTIVITY_CHANGE”

DEFAULT_NETWORK_PREFERENCE

Added in API level 1
int DEFAULT_NETWORK_PREFERENCE

此常数在API级别18中已弃用。
由于我们现在支持更多网络,因此单一网络默认网络首选项无法真正表达层次结构。 相反,缺省值由config.xml中的networkAttributes定义。 您可以通过从应用程序调用getNetworkPreference()来确定当前值。

如果要设置默认的网络首选项,可以直接在framework的config.xml中更改networkAttributes数组。

常数值:1(0x00000001)

EXTRA_CAPTIVE_PORTAL

Added in API level 23
String EXTRA_CAPTIVE_PORTAL

包含在ACTION_CAPTIVE_PORTAL_SIGN_IN意图中的CaptivePortal对象的查找键。 CaptivePortal对象可用于向系统表明强制门户已被解雇或用户不想继续登录强制门户。 getParcelableExtra(String)检索它。

常量值:“android.net.extra.CAPTIVE_PORTAL”

EXTRA_CAPTIVE_PORTAL_URL

Added in API level 24
String EXTRA_CAPTIVE_PORTAL_URL

将网址传递到强制性门户登录活动的关键。

常量值:“android.net.extra.CAPTIVE_PORTAL_URL”

EXTRA_EXTRA_INFO

Added in API level 1
String EXTRA_EXTRA_INFO

字符串的查找键,可提供有关网络状态的可选附加信息。 信息可以从较低的网络层传递,其含义可以特定于特定的网络类型。 getStringExtra(String)检索它。

常量值:“extraInfo”

EXTRA_IS_FAILOVER

Added in API level 1
String EXTRA_IS_FAILOVER

布尔型的查找键,指示连接事件是否针对连接管理器在另一个网络上断开连接后正在故障切换的网络。 getBooleanExtra(String, boolean)检索它。

常量值:“isFailover”

EXTRA_NETWORK

Added in API level 22
String EXTRA_NETWORK

在为应用程序请求成功找到网络后,包含在意图中的Network对象的查找键。 getParcelableExtra(String)检索它。

请注意,如果您打算调用 openConnection(java.net.URL)则必须先获取ConnectivityManager实例。

常量值:“android.net.extra.NETWORK”

EXTRA_NETWORK_INFO

Added in API level 1
String EXTRA_NETWORK_INFO

此常数在API级别14中已弃用。
由于NetworkInfo可能因UID而异,因此应用程序应始终通过getActiveNetworkInfo()获取网络信息。

NetworkInfo对象的查找键。 getParcelableExtra(String)检索。

也可以看看:

常量值:“networkInfo”

EXTRA_NETWORK_REQUEST

Added in API level 22
String EXTRA_NETWORK_REQUEST

成功查找应用程序请求的网络后,包含在意图中的NetworkRequest对象的查找键。 getParcelableExtra(String)检索它。

常量值:“android.net.extra.NETWORK_REQUEST”

EXTRA_NETWORK_TYPE

Added in API level 17
String EXTRA_NETWORK_TYPE

触发 CONNECTIVITY_ACTION广播的网络类型。

也可以看看:

常量值:“networkType”

EXTRA_NO_CONNECTIVITY

Added in API level 1
String EXTRA_NO_CONNECTIVITY

布尔型的查找键,指示是否完全缺少连接,即没有网络可用。 getBooleanExtra(String, boolean)检索它。

常量值:“noConnectivity”

EXTRA_OTHER_NETWORK_INFO

Added in API level 1
String EXTRA_OTHER_NETWORK_INFO

NetworkInfo对象的查找键。 当有可能连接到另一个网络时提供此信息。 getParcelableExtra(String)检索。

常数值:“otherNetwork”

EXTRA_REASON

Added in API level 1
String EXTRA_REASON

字符串的查找键,指示尝试连接到网络的原因失败。 该字符串没有特定的结构。 它旨在用于向用户显示的通知。 getStringExtra(String)检索它。

常数值:“原因”

RESTRICT_BACKGROUND_STATUS_DISABLED

Added in API level 24
int RESTRICT_BACKGROUND_STATUS_DISABLED

当应用程序在后台运行时,设备不限制测量的网络活动。

常数值:1(0x00000001)

RESTRICT_BACKGROUND_STATUS_ENABLED

Added in API level 24
int RESTRICT_BACKGROUND_STATUS_ENABLED

当应用程序在后台运行时,设备限制测量的网络活动。

在这种状态下,应用程序不应该尝试在后台运行时使用网络,因为它会被拒绝。

常量值:3(0x00000003)

RESTRICT_BACKGROUND_STATUS_WHITELISTED

Added in API level 24
int RESTRICT_BACKGROUND_STATUS_WHITELISTED

当应用程序在后台运行时,设备限制测量的网络活动,但允许应用程序绕过它。

在这种状态下,应用程序应采取措施减轻计量的网络访问。 例如,音乐流媒体应用程序应该切换到低带宽比特率。

常量值:2(0x00000002)

TYPE_BLUETOOTH

Added in API level 13
int TYPE_BLUETOOTH

蓝牙数据连接。 当处于活动状态时,默认情况下所有数据流量都将使用此网络类型的接口(它具有默认路由)。

常量值:7(0x00000007)

TYPE_DUMMY

Added in API level 14
int TYPE_DUMMY

虚拟数据连接。 这不应该在运输设备上使用。

常量值:8(0x00000008)

TYPE_ETHERNET

Added in API level 13
int TYPE_ETHERNET

以太网数据连接。 当处于活动状态时,默认情况下所有数据流量都将使用此网络类型的接口(它具有默认路由)。

常量值:9(0x00000009)

TYPE_MOBILE

Added in API level 1
int TYPE_MOBILE

移动数据连接。 处于活动状态时,所有数据流量默认都会使用此网络类型的接口(它具有默认路由)

常量值:0(0x00000000)

TYPE_MOBILE_DUN

Added in API level 8
int TYPE_MOBILE_DUN

一个DUN特定的移动数据连接。 该网络类型可以使用与TYPE_MOBILE相同的网络接口,也可以使用其他网络接口。 系统有时会在为绑定建立上行连接时使系统知道DUN流量。

常量值:4(0x00000004)

TYPE_MOBILE_HIPRI

Added in API level 8
int TYPE_MOBILE_HIPRI

此常数在API级别23中已弃用。
应用程序应改为使用requestNetwork(NetworkRequest, NetworkCallback)来请求使用TRANSPORT_CELLULAR传输的网络。

高优先级移动数据连接。 此网络类型使用与TYPE_MOBILE相同的网络接口,但路由设置不同。

常量值:5(0x00000005)

TYPE_MOBILE_MMS

Added in API level 8
int TYPE_MOBILE_MMS

此常数在API级别23中已弃用。
应用程序应改为使用requestNetwork(NetworkRequest, NetworkCallback)来请求提供NET_CAPABILITY_MMS功能的网络。

特定于MMS的移动数据连接。 此网络类型可能使用与TYPE_MOBILE相同的网络接口,也可能使用其他网络接口。 这是由需要与运营商的多媒体消息服务服务器交谈的应用程序使用的。

常量值:2(0x00000002)

TYPE_MOBILE_SUPL

Added in API level 8
int TYPE_MOBILE_SUPL

此常数在API级别23中已弃用。
应用程序应改为使用requestNetwork(NetworkRequest, NetworkCallback)来请求提供NET_CAPABILITY_SUPL功能的网络。

SUPL特定的移动数据连接。 此网络类型可能使用与TYPE_MOBILE相同的网络接口,也可能使用其他网络接口。 应用程序需要与运营商的安全用户平面位置服务器交谈才能找到该设备。

常量值:3(0x00000003)

TYPE_VPN

Added in API level 21
int TYPE_VPN

使用一个或多个本地承载的虚拟网络。 它可能会也可能不会提供安全服务。

常量值:17(0x00000011)

TYPE_WIFI

Added in API level 1
int TYPE_WIFI

WIFI数据连接。 当处于活动状态时,默认情况下所有数据流量都将使用此网络类型的接口(它具有默认路由)。

常数值:1(0x00000001)

TYPE_WIMAX

Added in API level 8
int TYPE_WIMAX

WiMAX数据连接。 当处于活动状态时,默认情况下所有数据流量都将使用此网络类型的接口(它具有默认路由)。

常数值:6(0x00000006)

Public methods

addDefaultNetworkActiveListener

Added in API level 21
void addDefaultNetworkActiveListener (ConnectivityManager.OnNetworkActiveListener l)

当系统的默认数据网络处于活动状态时,开始收听报告,这意味着现在是执行网络流量的好时机。 使用isDefaultNetworkActive()确定注册侦听器后系统默认网络的当前状态。

如果过程默认网络设置为 bindProcessToNetwork(Network)此功能不会反映过程的默认值,而是系统默认值。

Parameters
l ConnectivityManager.OnNetworkActiveListener: The listener to be told when the network is active.

bindProcessToNetwork

Added in API level 23
boolean bindProcessToNetwork (Network network)

将当前进程绑定到network 将来创建的所有套接字(并且未通过绑定的SocketFactory从Network.getSocketFactory()明确绑定)将被绑定到network 所有主机名解析也将被限制为network 请注意,如果network断开连接,则以此方式创建的所有套接字将停止工作,并且所有主机名解析都将失败。 这是设计的,所以应用程序不会意外地使用它认为仍然绑定到特定Network 清除绑定通过nullnetwork 使用由Network.getSocketFactory()。createSocket()创建的单独绑定的套接字并通过Network.getAllByName执行网络特定的主机名解析Network.getAllByName调用bindProcessToNetwork

Parameters
network Network: The Network to bind the current process to, or null to clear the current binding.
Returns
boolean true on success, false if the Network is no longer valid.

getActiveNetwork

Added in API level 23
Network getActiveNetwork ()

返回与当前活动的默认数据网络相对应的Network对象。 如果当前活动的默认数据网络断开连接,则返回的Network对象将不再可用。 当没有默认网络时,这将返回null

此方法要求调用方持有权限 ACCESS_NETWORK_STATE

Returns
Network a Network object for the current default network or null if no default network is currently active

getActiveNetworkInfo

Added in API level 1
NetworkInfo getActiveNetworkInfo ()

返回有关当前活动默认数据网络的详细信息。 连接时,此网络是传出连接的默认路由。 在启动网络通信之前,您应始终检查isConnected() 当没有默认网络时,这可能会返回null

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Returns
NetworkInfo a NetworkInfo object for the current default network or null if no default network is currently active

getAllNetworkInfo

Added in API level 1
NetworkInfo[] getAllNetworkInfo ()

此方法在API级别23中已弃用。
此方法不支持多个相同类型的连接网络。 改为使用getAllNetworks()getNetworkInfo(android.net.Network)

返回有关设备支持的所有网络类型的连接状态信息。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Returns
NetworkInfo[] an array of NetworkInfo objects. Check each getType() for which type each applies.

getAllNetworks

Added in API level 21
Network[] getAllNetworks ()

返回框架当前跟踪的所有 Network的数组。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Returns
Network[] an array of Network objects.

getBackgroundDataSetting

Added in API level 3
boolean getBackgroundDataSetting ()

此方法在API级别14中已弃用。
ICE_CREAM_SANDWICH ,背景数据的可用性取决于几个组合因素,并且此方法将始终返回true 相反,当后台数据不可用时, getActiveNetworkInfo()现在将显示为已断开连接。

返回背景数据使用设置的值。 如果为false,则应用程序不应该在前台使用网络。 开发者应该尊重这个设置,并且在执行任何后台数据操作之前检查这个值。

所有具有使用网络的后台服务的应用程序都应该听 ACTION_BACKGROUND_DATA_SETTING_CHANGED

Returns
boolean Whether background data usage is allowed.

getBoundNetworkForProcess

Added in API level 23
Network getBoundNetworkForProcess ()

返回 Network当前通过绑定到这个过程 bindProcessToNetwork(Network) ,或 null如果没有 Network明确的约束。

Returns
Network Network to which this process is bound, or null.

getDefaultProxy

Added in API level 23
ProxyInfo getDefaultProxy ()

获取当前的默认HTTP代理设置。 如果全局代理设置将被退回,否则,如果这个过程被绑定到Network使用bindProcessToNetwork(Network)那么Network返回的代理,否则将返回默认的网络代理。

Returns
ProxyInfo the ProxyInfo for the current HTTP proxy, or null if no HTTP proxy is active.

getLinkProperties

Added in API level 21
LinkProperties getLinkProperties (Network network)

获取LinkProperties对于给定Network 如果网络未知,这将返回null

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
network Network: The Network object identifying the network in question.
Returns
LinkProperties The LinkProperties for the network, or null.

getNetworkCapabilities

Added in API level 21
NetworkCapabilities getNetworkCapabilities (Network network)

获取NetworkCapabilities对于给定Network 如果网络未知,这将返回null

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
network Network: The Network object identifying the network in question.
Returns
NetworkCapabilities The NetworkCapabilities for the network, or null.

getNetworkInfo

Added in API level 1
NetworkInfo getNetworkInfo (int networkType)

此方法在API级别23中已弃用。
此方法不支持多个相同类型的连接网络。 改为使用getAllNetworks()getNetworkInfo(android.net.Network)

返回有关特定网络类型的连接状态信息。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
networkType int: integer specifying which networkType in which you're interested.
Returns
NetworkInfo a NetworkInfo object for the requested network type or null if the type is not supported by the device.

getNetworkInfo

Added in API level 21
NetworkInfo getNetworkInfo (Network network)

返回有关特定网络的连接状态信息。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
network Network: Network specifying which network in which you're interested.
Returns
NetworkInfo a NetworkInfo object for the requested network or null if the Network is not valid.

getNetworkPreference

Added in API level 1
int getNetworkPreference ()

此方法在API级别21中已弃用。
功能已被删除,因为它不再有意义,有两个以上的网络 - 我们需要一个数组来表示偏好。 相反,我们使用网络的动态网络属性来描述它们的优先级。

检索当前的首选网络类型。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Returns
int an integer representing the preferred network type

getProcessDefaultNetwork

Added in API level 21
Network getProcessDefaultNetwork ()

此方法在API级别23中已弃用。
使用此功能可能会导致其他功能投掷IllegalStateException 改为使用getBoundNetworkForProcess() getBoundNetworkForProcess是直接替换。

返回 Network当前通过绑定到这个过程 bindProcessToNetwork(Network) ,或 null如果没有 Network明确的约束。

Returns
Network Network to which this process is bound, or null.

getRestrictBackgroundStatus

Added in API level 24
int getRestrictBackgroundStatus ()

确定调用应用程序在后台运行时是否受到计量网络限制的影响。

Returns
int RESTRICT_BACKGROUND_STATUS_DISABLED, RESTRICT_BACKGROUND_STATUS_ENABLED, or RESTRICT_BACKGROUND_STATUS_WHITELISTED

isActiveNetworkMetered

Added in API level 16
boolean isActiveNetworkMetered ()

返回当前活动的数据网络是否被测量。 由于货币成本,数据限制或电池/性能问题,当用户对该连接上的大量数据使用敏感时,网络被分类为计量。 在进行大量数据传输之前,您应该先检查并警告用户或延迟操作,直到有另一个网络可用。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Returns
boolean true if large transfers should be avoided, otherwise false.

isDefaultNetworkActive

Added in API level 21
boolean isDefaultNetworkActive ()

返回数据网络当前是否处于活动状态。 主动网络意味着它当前处于高功率状态以执行数据传输。 在某些类型的网络中,移动并停留在这种状态可能会很昂贵,因此当无线电已经处于此状态时,将网络流量分配到一起会更节能。 此方法会告诉您现在是否是发起网络流量的好时机,因为网络已经处于活动状态。

Returns
boolean

isNetworkTypeValid

Added in API level 1
boolean isNetworkTypeValid (int networkType)

此方法在API级别23中已弃用。
所有接受网络类型的API都被弃用。 应该不需要验证网络类型。

测试给定的整数是否表示有效的网络类型。

Parameters
networkType int: the type to be tested
Returns
boolean a boolean. true if the type is valid, else false

registerDefaultNetworkCallback

Added in API level 24
void registerDefaultNetworkCallback (ConnectivityManager.NetworkCallback networkCallback)

注册接收有关系统默认网络更改的通知。 回调将继续被调用,直到应用程序退出或unregisterNetworkCallback(NetworkCallback)

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
networkCallback ConnectivityManager.NetworkCallback: The ConnectivityManager.NetworkCallback that the system will call as the system default network changes.

registerNetworkCallback

Added in API level 21
void registerNetworkCallback (NetworkRequest request, 
                ConnectivityManager.NetworkCallback networkCallback)

注册接收有关满足给定NetworkRequest所有网络的通知。 回调将继续被调用,直到应用程序退出或链接#unregisterNetworkCallback(NetworkCallback)}被调用。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
request NetworkRequest: NetworkRequest describing this request.
networkCallback ConnectivityManager.NetworkCallback: The ConnectivityManager.NetworkCallback that the system will call as suitable networks change state.

registerNetworkCallback

Added in API level 23
void registerNetworkCallback (NetworkRequest request, 
                PendingIntent operation)

当满足给定的NetworkRequest的网络可用时,注册待发送的PendingIntent。 这个函数行为相同,需要一个NetworkCallback的版本,但不是ConnectivityManager.NetworkCallback一个PendingIntent使用。 这意味着该请求可能会超出呼叫应用程序,并在找到合适的网络时被回叫。

该操作是一个Intent广播,通过一个AndroidManifest.xml文件中的<receiver>标签注册到您在 registerReceiver(BroadcastReceiver, IntentFilter)注册的广播接收器

操作Intent提供了两个附加功能,一种为 NetworkNetwork一种为 NetworkNetwork一种为 EXTRA_NETWORKNetworkRequest一种为 EXTRA_NETWORK_REQUEST其中包含原始请求参数。

如果已经有一个请求注册了这个Intent(两个Intents的等 filterEquals(Intent)filterEquals(Intent)定义),那么它将被删除并被这个替换,从而有效地释放先前的 NetworkRequest

请求可能通过调用 unregisterNetworkCallback(android.app.PendingIntent)正常释放。

此方法要求调用方拥有权限 ACCESS_NETWORK_STATE

Parameters
request NetworkRequest: NetworkRequest describing this request.
operation PendingIntent: Action to perform when the network is available (corresponds to the onAvailable(Network) call. Typically comes from getBroadcast(Context, int, Intent, int). Cannot be null.

releaseNetworkRequest

Added in API level 22
void releaseNetworkRequest (PendingIntent operation)

删除通过 requestNetwork(NetworkRequest, android.app.PendingIntent)提出的请求

此方法在释放网络资源和断开连接方面与 unregisterNetworkCallback(android.app.PendingIntent)具有相同的行为。

Parameters
operation PendingIntent: A PendingIntent equal (as defined by filterEquals(Intent)) to the PendingIntent passed to requestNetwork(NetworkRequest, android.app.PendingIntent) with the corresponding NetworkRequest you'd like to remove. Cannot be null.

removeDefaultNetworkActiveListener

Added in API level 21
void removeDefaultNetworkActiveListener (ConnectivityManager.OnNetworkActiveListener l)

删除先前用 addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener)注册的网络主动侦听 addDefaultNetworkActiveListener(ConnectivityManager.OnNetworkActiveListener)

Parameters
l ConnectivityManager.OnNetworkActiveListener: Previously registered listener.

reportBadNetwork

Added in API level 21
void reportBadNetwork (Network network)

此方法在API级别23中已弃用。
使用reportNetworkConnectivity(Network, boolean)可以报告工作连接和非工作连接。

向框架报告问题网络。 这向系统提供了一个提示,即该网络上可能存在连接问题,并可能导致框架重新评估网络连接和/或切换到另一个网络。

Parameters
network Network: The Network the application was attempting to use or null to indicate the current default network.

reportNetworkConnectivity

Added in API level 23
void reportNetworkConnectivity (Network network, 
                boolean hasConnectivity)

向框架报告网络是否具有连通性。 这为系统提供了一个提示,即特定网络是否提供工作连接。 作为回应,该框架可能会重新评估网络的连通性,并可能在此后采取进一步行动。

Parameters
network Network: The Network the application was attempting to use or null to indicate the current default network.
hasConnectivity boolean: true if the application was able to successfully access the Internet using network or false if not.

requestBandwidthUpdate

Added in API level 23
boolean requestBandwidthUpdate (Network network)

请求给定Network带宽更新并返回ConnectivityService是否接受更新请求。 一旦接受,ConnectivityService将轮询底层网络连接以获取更新的带宽信息。 如果有更新,调用者将通过ConnectivityManager.NetworkCallback通知。 请注意,此方法假定调用方先前已调用registerNetworkCallback(NetworkRequest, NetworkCallback)来侦听网络更改。

Parameters
network Network: Network specifying which network you're interested.
Returns
boolean true on success, false if the Network is no longer valid.

requestNetwork

Added in API level 21
void requestNetwork (NetworkRequest request, 
                ConnectivityManager.NetworkCallback networkCallback)

请求网络满足一组NetworkCapabilities NetworkRequest将直到通过unregisterNetworkCallback(NetworkCallback)发布或呼叫应用程序退出。 通过收听ConnectivityManager.NetworkCallback描述的各种回调,可以跟踪请求的状态。 Network可用于将流量引导至网络。

目前不支持请求具有可变 NetworkCapabilities的网络,例如 NET_CAPABILITY_VALIDATEDNET_CAPABILITY_CAPTIVE_PORTAL因为这些 NetworkCapabilities表示特定网络可能永远不会达到的状态,并且在启动网络之前网络是否会达到这些状态是未知的,因此该框架没有知道如何去满足具有这些能力的请求。

此方法要求主叫方保持 CHANGE_NETWORK_STATE权限或修改 canWrite(Context)确定的系统设置的 canWrite(Context)

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.
Throws
IllegalArgumentException if request specifies any mutable NetworkCapabilities.

requestNetwork

Added in API level 22
void requestNetwork (NetworkRequest request, 
                PendingIntent operation)

要求网络满足一组NetworkCapabilities 这个函数行为相同,需要一个NetworkCallback的版本,但不是ConnectivityManager.NetworkCallback一个PendingIntent使用。 这意味着该请求可能会超出呼叫应用程序,并在找到合适的网络时被回叫。

该操作是一个Intent广播,转到您通过AndroidManifest.xml文件中的 registerReceiver(BroadcastReceiver, IntentFilter)或<receiver>标记注册的广播接收器

操作意图有两个额外交付,一个Network类型的额外称为EXTRA_NETWORKNetworkRequest类型的额外称为EXTRA_NETWORK_REQUEST包含原始请求参数。 在完成意向处理以保留网络之前创建一个新的,基于ConnectivityManager.NetworkCallback的请求非常重要,或者将在意向处理后不久发布。

如果已经有一个请求注册了这个Intent(两个Intents的等 filterEquals(Intent)filterEquals(Intent)定义),那么它将被删除并被这个替换,从而有效地释放先前的 NetworkRequest

通过调用 releaseNetworkRequest(android.app.PendingIntent)可以正常释放该请求。

由于这些 NetworkCapabilities代表特定网络可能永远不会达到的状态,并且网络是否会达到这些状态在启动网络之前是未知的,所以目前不支持请求具有 NET_CAPABILITY_VALIDATEDNET_CAPABILITY_CAPTIVE_PORTAL的网络,因此框架不知道如何用这些功能去满足一个请求。

此方法要求主叫方保持 CHANGE_NETWORK_STATE权限或修改 canWrite(Context)确定的系统设置的 canWrite(Context)

Parameters
request NetworkRequest: NetworkRequest describing this request.
operation PendingIntent: Action to perform when the network is available (corresponds to the onAvailable(Network) call. Typically comes from getBroadcast(Context, int, Intent, int). Cannot be null.
Throws
IllegalArgumentException if request contains either NET_CAPABILITY_VALIDATED or NET_CAPABILITY_CAPTIVE_PORTAL.

requestRouteToHost

Added in API level 1
boolean requestRouteToHost (int networkType, 
                int hostAddress)

此方法在API级别21中已弃用。
不赞成使用,因为的requestNetwork(NetworkRequest, NetworkCallback)bindProcessToNetwork(Network)getSocketFactory() API。 M及以上版本中,此方法不受支持,并且如果调用将抛出UnsupportedOperationException

确保存在网络路由以通过指定的网络接口将流量传送到指定的主机。 尝试添加已存在的路线会被忽略,但会视为成功。

此方法要求调用方保持 CHANGE_NETWORK_STATE权限或修改 canWrite(Context)确定的系统设置的能力。

Parameters
networkType int: the type of the network over which traffic to the specified host is to be routed
hostAddress int: the IP address of the host to which the route is desired
Returns
boolean true on success, false on failure

setNetworkPreference

Added in API level 1
void setNetworkPreference (int preference)

此方法在API级别21中已弃用。
功能已被删除,因为它不再有意义,有两个以上的网络 - 我们需要一个数组来表示偏好。 相反,我们使用网络的动态网络属性来描述它们的优先级。

指定首选网络类型。 当设备具有多种可用类型时,将使用首选的网络类型。

Parameters
preference int: the network type to prefer over all others. It is unspecified what happens to the old preferred network in the overall ordering.

setProcessDefaultNetwork

Added in API level 21
boolean setProcessDefaultNetwork (Network network)

此方法在API级别23中已弃用。
这个函数可以抛出IllegalStateException 改为使用bindProcessToNetwork(Network) bindProcessToNetwork是直接替换。

将当前进程绑定到network 将来创建的所有套接字(并且未通过绑定的SocketFactory从Network.getSocketFactory()明确绑定)将被绑定到network 所有主机名解析也将被限制为network 请注意,如果network断开连接, network这种方式创建的所有套接字将停止工作,并且所有主机名解析都将失败。 这是设计的,所以应用程序不会意外地使用它认为仍然绑定到特定Network 通过null清除绑定通过network 使用由Network.getSocketFactory()。createSocket()创建的单独绑定的套接字并通过Network.getAllByName执行网络特定的主机名解析Network.getAllByName调用setProcessDefaultNetwork

Parameters
network Network: The Network to bind the current process to, or null to clear the current binding.
Returns
boolean true on success, false if the Network is no longer valid.

startUsingNetworkFeature

Added in API level 1
int startUsingNetworkFeature (int networkType, 
                String feature)

此方法在API级别21中已弃用。
弃用赞成清洁requestNetwork(NetworkRequest, NetworkCallback) API。 M以及更高版本中,此方法不受支持,并且如果调用将抛出UnsupportedOperationException

告诉底层的网络系统,调用者想要开始使用命名的功能。 feature的解释完全取决于每个联网实施。

此方法要求主叫方保持 CHANGE_NETWORK_STATE权限或修改 canWrite(Context)确定的系统设置的 canWrite(Context)

Parameters
networkType int: specifies which network the request pertains to
feature String: the name of the feature to be used
Returns
int an integer value representing the outcome of the request. The interpretation of this value is specific to each networking implementation+feature combination, except that the value -1 always indicates failure.

stopUsingNetworkFeature

Added in API level 1
int stopUsingNetworkFeature (int networkType, 
                String feature)

此方法在API级别21中已弃用。
弃用赞成清洁unregisterNetworkCallback(NetworkCallback) API。 M及更高版本中,此方法不受支持,如果调用将抛出UnsupportedOperationException

使用指定的功能告诉底层网络系统调用者已完成。 feature的解释完全取决于每个联网实施。

此方法要求调用方保留 CHANGE_NETWORK_STATE权限或修改 canWrite(Context)确定的系统设置的 canWrite(Context)

Parameters
networkType int: specifies which network the request pertains to
feature String: the name of the feature that is no longer needed
Returns
int an integer value representing the outcome of the request. The interpretation of this value is specific to each networking implementation+feature combination, except that the value -1 always indicates failure.

unregisterNetworkCallback

Added in API level 21
void unregisterNetworkCallback (ConnectivityManager.NetworkCallback networkCallback)

取消注册关于并可能释放来自requestNetwork(NetworkRequest, NetworkCallback)registerNetworkCallback(NetworkRequest, NetworkCallback)调用的网络的registerNetworkCallback(NetworkRequest, NetworkCallback)叫。 如果给定的NetworkCallback先前已与#requestNetwork使用, #requestNetwork仅连接到满足该请求的任何网络都将断开连接。

Parameters
networkCallback ConnectivityManager.NetworkCallback: The ConnectivityManager.NetworkCallback used when making the request.

unregisterNetworkCallback

Added in API level 23
void unregisterNetworkCallback (PendingIntent operation)

注销先前通过 registerNetworkCallback(NetworkRequest, android.app.PendingIntent)注册的回 registerNetworkCallback(NetworkRequest, android.app.PendingIntent)

Parameters
operation PendingIntent: A PendingIntent equal (as defined by filterEquals(Intent)) to the PendingIntent passed to registerNetworkCallback(NetworkRequest, android.app.PendingIntent). Cannot be null.

Hooray!