表示活动网络的能力。实例通常通过NetworkCallback# oncapability changed (Network, NetworkCapabilities)或ConnectivityManager#getNetworkCapabilities(Network)获得。
这将取代旧的ConnectivityManager#TYPE_MOBILE网络选择方法。应用程序应该明确它需要高带宽,而不是指出它需要Wi-Fi,因为应用程序需要高带宽,而当一个新的、快速的网络(如LTE)出现时,它可能会被淘汰。类似地,如果应用程序需要一个不计量的网络来进行批量传输,它可以指定这一点,而不是假设所有基于蜂窝网络的连接都是计量的,而所有基于Wi-Fi的连接都不是。
NET_CAPABILITY_CAPTIVE_PORTAL
表明这个网络在上次被探测时被发现有一个固定的入口。
NET_CAPABILITY_CBS
表示这是一个能够到达运营商CBS服务器的网络,用于运营商特定的服务。
NET_CAPABILITY_DUN
表示这是一个能够到达运营商的DUN或tethering网关的网络。
NET_CAPABILITY_EIMS
指示此网络具有到达运营商紧急IMS服务器或其他服务的能力,用于紧急呼叫期间的网络信令。
NET_CAPABILITY_ENTERPRISE
表示此网络用于企业使用。
5G URSP规则可能表明,所有数据应该使用企业专用的连接。如果请求企业能力,所有企业流量都将通过具有此能力的连接进行路由。
NET_CAPABILITY_FOREGROUND
表示此网络可供应用程序使用,而不是为了方便快速网络切换而在后台保持的网络。
NET_CAPABILITY_FOTA
表明这是一个能够到达运营商FOTA门户的网络,用于空中更新。
NET_CAPABILITY_HEAD_UNIT
表示此网络连接到汽车头部单元。
NET_CAPABILITY_IA
表示这是一个有能力到达运营商的初始附加服务器的网络。
NET_CAPABILITY_IMS
表示这是一个能够到达运营商IMS服务器的网络,用于网络注册和信令。
NET_CAPABILITY_INTERNET *
表示该网络应该能够到达internet。
NET_CAPABILITY_MCX
表示该网络有能力到达运营商的关键任务服务器。
NET_CAPABILITY_MMS
表示该网络能够到达运营商的MMSC,用于发送和接收MMS消息。
NET_CAPABILITY_MMTEL
表示该网络具有支持MMTEL(多媒体电话业务)的能力。
NET_CAPABILITY_NOT_CONGESTED
表示该网络没有拥塞。
当网络拥塞时,应用程序应该延迟可以在稍后时间完成的网络流量,例如上传分析。
NET_CAPABILITY_NOT_METERED
表示该网络是不计量的。
NET_CAPABILITY_NOT_RESTRICTED
表示此网络可用于一般用途。如果没有设置此参数,应用程序不应尝试在此网络上进行通信。请注意,这只是提供信息而不是执行——执行是通过其他方式处理的。默认设置。
NET_CAPABILITY_NOT_ROAMING
表示此网络不漫游。
NET_CAPABILITY_NOT_SUSPENDED *
指示此网络当前未挂起。
当网络挂起时,网络的IP地址和在网络上建立的任何连接都是有效的,但网络暂时无法传输数据。这可能发生,例如,如果一个蜂窝网络经历了暂时的信号丢失,例如开车通过一个隧道,等等。具有这种能力的网络不会挂起,因此预计能够传输数据。
NET_CAPABILITY_NOT_VPN *
表示该网络不是VPN。这种能力是默认设置的,应该为VPN网络显式清除。
NET_CAPABILITY_PRIORITIZE_BANDWIDTH
表示该网络应该能够为internet优先考虑带宽。
NET_CAPABILITY_PRIORITIZE_LATENCY
表示该网络应该能够优先考虑internet的延迟。
NET_CAPABILITY_RCS
表示这是一个能够到达运营商RCS服务器的网络,用于富通信服务。
NET_CAPABILITY_SUPL *
表示这是一个能够到达运营商的SUPL服务器的网络,用于检索GPS信息。
NET_CAPABILITY_TEMPORARILY_NOT_METERED
表示此网络暂时不计量。
这种能力将被设置为通常是计量的网络,但目前是不计量的,例如,因为用户在一个特定的区域。此功能可以在任何时候更改。当它被删除时,应用程序负责停止任何不应该发生在计量网络上的数据传输。请注意,大多数应用程序应该使用net_capability_not_meter代替。更多信息请参见https://developer.android.com/about/versions/11/features/5g#meteredness。
NET_CAPABILITY_TRUSTED
表示用户已表示此网络的隐式信任。这通常意味着它是一个sim选择的运营商,一个插入以太网,一个配对的BT设备或一个wifi用户要求连接。不可信网络可能仅限于未知的wifi AP。默认设置。
NET_CAPABILITY_VALIDATED *
指示此网络上的连通性已成功验证。例如,对于带有NET_CAPABILITY_INTERNET的网络,它意味着成功检测到互联网连接。
NET_CAPABILITY_WIFI_P2P
表示这是一个能够到达Wi-Fi直接对等点的网络。
NET_CAPABILITY_XCAP
表示这是一个能够到达运营商XCAP服务器的网络,用于配置和控制。
NET_ENTERPRISE_ID_1 2 3 4 5
企业能力标识符 1~5
SIGNAL_STRENGTH_UNSPECIFIED
表示没有提供信号强度的魔术值。指定此值的请求总是得到满足。
TRANSPORT_BLUETOOTH
表示该网络使用蓝牙传输。
TRANSPORT_CELLULAR *
表示此网络使用蜂窝传输。
TRANSPORT_ETHERNET
表示该网络使用以太网传输。
TRANSPORT_LOWPAN
表示该网络使用LoWPAN传输。
TRANSPORT_USB
表示该网络使用USB传输。
TRANSPORT_VPN *
表示该网络使用VPN传输。
TRANSPORT_WIFI *
表示该网络使用Wi-Fi传输。
TRANSPORT_WIFI_AWARE
表示该网络使用Wi-Fi感知传输。
public describeContents()
描述在这个Parcelable实例的封送表示中包含的特殊对象的类型。例如,如果对象在writeToParcel(android.os.)的输出中包含一个文件描述符。Parcel, int),这个方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。
public int[] getCapabilities ()
获取此NetworkCapability实例上设置的所有功能。
public int[] getEnterpriseIds ()
获取企业标识符集。如果设置了NET_CAPABILITY_ENTERPRISE,而没有设置企业ID,则默认情况下认为它有NET_CAPABILITY_ENTERPRISE。
public int getLinkDownstreamBandwidthKbps ()
检索此网络的下游带宽(以Kbps为单位)。这总是只涉及估计的第一跳传输带宽。
public int getLinkUpstreamBandwidthKbps ()
检索此网络的上行带宽(以Kbps为单位)。这总是只涉及估计的第一跳传输带宽。
public NetworkSpecifier getNetworkSpecifier ()
获取可选的承载特定网络说明符。如果没有设置,可能为空。
public int getOwnerUid ()
获取拥有此网络的应用程序的UID。
public int getSignalStrength () *
检索信号强度。
public TransportInfo getTransportInfo ()
返回特定于传输的信息容器。应用程序可以根据其对网络请求的了解将这个容器转换为一个具体的子类。应用程序应该能够处理一个空的返回值或无效的情况,例如使用instanceof操作符来验证预期的类型。
public boolean hasCapability (int capability)
测试此实例上是否存在功能。
public boolean hasEnterpriseId (int enterpriseId)
测试此实例上是否存在企业功能标识符。如果设置了NET_CAPABILITY_ENTERPRISE,而没有设置企业ID,则默认为具有NET_CAPABILITY_ENTERPRISE。
public boolean hasTransport (int transportType)
测试此实例上是否存在传输。