android.net.wifi.WifiManager m = (WifiManager) getSystemService(WIFI_SERVICE);
android.net.wifi.SupplicantState s = m.getConnectionInfo().getSupplicantState();
NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(s);
if (state != NetworkInfo.DetailedState.CONNECTED) {
return false;
}
但是状态不是我会期望的。即使已连接Wi-Fi,我仍将
OBTAINING_IPADDR
设为状态。#1 楼
您应该能够使用ConnectivityManager来获取Wi-Fi适配器的状态。在这里,您可以检查它是否已连接或是否可用。ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected()) {
// Do whatever
}
注意:(在此处为我们n00bies)应注意,您需要添加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
到您的
AndroidManifest.xml可以正常工作。
注意2:
public NetworkInfo getNetworkInfo (int networkType)
现在已弃用:在API级别23中已弃用此方法。该方法不支持同类型的多个连接网络。请改用
getAllNetworks()和getNetworkInfo(android.net.Network)。
注意3:现在不建议使用
public static final int TYPE_WIFI
:此常量在API级别28中已弃用。
应用程序应改为使用NetworkCapabilities.hasTransport(int)或requestNetwork(NetworkRequest,NetworkCallback)来请求适当的网络。用于支持的运输。
#2 楼
由于现在API-23中已弃用了NetworkInfo.isConnected()方法,因此这是一种检测Wi-Fi适配器是否打开并且还使用WifiManager连接到访问点的方法:private boolean checkWifiOnAndConnected() {
WifiManager wifiMgr = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (wifiMgr.isWifiEnabled()) { // Wi-Fi adapter is ON
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
if( wifiInfo.getNetworkId() == -1 ){
return false; // Not connected to an access point
}
return true; // Connected to an access point
}
else {
return false; // Wi-Fi adapter is OFF
}
}
评论
值得一提的是wifiInfo可以为null,因此我认为您应该在获取网络ID之前先检查null
– Nonos
16年7月7日在20:58
NetworkInfo.isConnected()对我来说似乎不建议使用。
– EricRobertBrewer
17年3月31日在19:45
不要忘记添加权限:android.permission.ACCESS_WIFI_STATE
–Ton Snoei
18-3-28的11:30
如果未启用位置权限和位置模式,则此功能将无法再在Android Q中使用,请参阅issuetracker.google.com/issues/136021574。
– Konsumierer
19年6月27日在8:35
@EricRobertBrewer评论不再是最新的。现在,已弃用API 29+。
–nuKs
3月9日15:00
#3 楼
我只使用以下内容:SupplicantState supState;
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
supState = wifiInfo.getSupplicantState();
在调用getSupplicantState()时,哪个将返回这些状态之一;
关联-关联完成。
关联-尝试与访问点关联。
完成-所有身份验证
完成。
已断开连接-此状态指示
客户端未关联,但是
可能开始寻找访问点。
DORMANT-一种Android添加的状态,当客户端发出
显式DISCONNECT命令时,会报告
。
FOUR_WAY_HANDSHAKE-WPA 4向键
正在进行握手。
GROUP_HANDSHAKE-WPA组密钥
正在进行握手。
不活动-不活动状态。
无效-通常不应看到的伪状态
。
扫描-扫描一个网络。
未初始化-无连接。
评论
嗨Donal.I用相同的方法来获取我们的设备是否已连接到wifi。但是另外我还需要知道当前使用WIFI的应用名称,那怎么办?
– AbhishekB
2012年3月28日在11:41
@AbhishekB,对不起,但我对此没有任何经验,也许尝试查看一些Wi-Fi监视应用程序,看看是否有一个开放源代码可以在其中查看代码。
–Donal Rafferty
2012年3月28日14:40在
我对这种解决方案感到怀疑,因为仅在使用WPA(或WPA的某些变体)时才使用请求者:如果用户连接到没有身份验证或WEP的AP,则不会涉及请求者。
–汤姆
2012年5月14日17:23
即使我不在wifi上,它仍然显示为“完成”
–埃文·帕森斯(Evan Parsons)
16年4月26日在23:02
是否有针对上述状态的系统广播意图? @DonalRafferty
–罗希特·辛格(Rohit Singh)
17年4月9日在11:33
#4 楼
我正在我的应用程序中使用它来检查活动网络是否为Wi-Fi:ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null && ni.getType() == ConnectivityManager.TYPE_WIFI)
{
// Do your work here
}
评论
这是最好的答案,因为它可以确保活动网络(将用于下载的网络)是WiFi
–加夫里耶尔
16年2月10日在15:13
现已弃用NetworkInfo#isConnected,这也是最好的答案
– Tash Pemhiwa
16 Mar 29 '16 at 8:26
绝对是今年(2017年)的最佳答案。
–丹尼尔·纽金特(Daniel Nugent)
17年2月23日在22:10
鉴于Android Q要求本文中某些解决方案的位置权限,因此也是2020年的最佳解决方案。这不需要位置权限即可工作。
–约瑟芬
10月7日11:19
#5 楼
我看了几个类似的问题,并提出了以下问题:ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isConnected()){
// If Wi-Fi connected
}
if (mobile.isConnected()) {
// If Internet connected
}
我在Root Toolbox PRO中使用if进行许可证检查,它似乎可以正常工作很好。
评论
看起来不错,但我不确定为什么您会再次引用ConnectivityManager。在此示例中,connManager和connManager1都是同一个对象
–内森·史威文(Nathan Schwermann)
2011年7月9日在18:23
TYPE_MOBLIE是否表示3gnet或gprs net?
–herbertD
2012年8月15日在6:34
TYPE_MOBILE表示使用运营商的任何数据-2G(GPRS ...),3G(HSDPA ...)或4G(LTE ...)。
– Eugen Pechanec
2014年3月21日在9:29
您可以添加TYPE_ETHERNET,将android连接到以太网时效果很好
– MBH
2015年9月23日上午8:09
值得记住的是,如果网络不存在,则getNetworkInfo()将返回null。因此,如果设备没有移动连接,则将引发错误。在大多数情况下,由于大多数设备都没有以太网连接,因此TYPE_ETHERNET将导致为空。
–克诺索斯
2015年12月23日下午6:36
#6 楼
尽管Jason的答案是正确的,但如今getNetWorkInfo(int)已被弃用。因此,下一个功能将是一个不错的选择:public static boolean isWifiAvailable (Context context)
{
boolean br = false;
ConnectivityManager cm = null;
NetworkInfo ni = null;
cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
ni = cm.getActiveNetworkInfo();
br = ((null != ni) && (ni.isConnected()) && (ni.getType() == ConnectivityManager.TYPE_WIFI));
return br;
}
#7 楼
从API级别29开始不推荐使用NetworkInfo
类,以及诸如ConnectivityManager#getNetworkInfo()
和ConnectivityManager#getActiveNetworkInfo()
之类的相关访问方法。 该文档现在建议人们使用
ConnectivityManager.NetworkCallback
API进行异步回调监视,或者使用ConnectivityManager#getNetworkCapabilities
或ConnectivityManager#getLinkProperties
来同步访问网络信息呼叫者应改用ConnectivityManager.NetworkCallback API来了解连通性更改,或切换为使用ConnectivityManager#getNetworkCapabilities或ConnectivityManager#getLinkProperties同步获取信息。
要检查是否已连接WiFi,这是我使用的代码:
Kotlin:
val connMgr = applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
connMgr?: return false
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network: Network = connMgr.activeNetwork ?: return false
val capabilities = connMgr.getNetworkCapabilities(network)
return capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
} else {
val networkInfo = connMgr.activeNetworkInfo ?: return false
return networkInfo.isConnected && networkInfo.type == ConnectivityManager.TYPE_WIFI
}
Java:
ConnectivityManager connMgr = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (connMgr == null) {
return false;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Network network = connMgr.getActiveNetwork();
if (network == null) return false;
NetworkCapabilities capabilities = connMgr.getNetworkCapabilities(network);
return capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
} else {
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
return networkInfo.isConnected() && networkInfo.getType() == ConnectivityManager.TYPE_WIFI;
}
请记住还要向清单文件中添加权限
ACCESS_NETWORK_STATE
。#8 楼
使用WifiManager
可以执行以下操作:WifiManager wifi = (WifiManager) getSystemService (Context.WIFI_SERVICE);
if (wifi.getConnectionInfo().getNetworkId() != -1) {/* connected */}
方法getNeworkId仅在未连接到网络时才返回-1;
评论
WIFI_STATE_DISABLED常数值:1(0x00000001)WIFI_STATE_DISABLING常数值:0(0x00000000)WIFI_STATE_ENABLED常数值:3(0x00000003)WIFI_STATE_ENABLING常数值:2(0x00000002)WIFI_STATE_UNKNOWN常数值:4(0x00000004)
–劳·莫达(Lou Morda)
17年11月6日在18:17
developer.android.com/reference/android/net/wifi/…
–劳·莫达(Lou Morda)
17年11月6日在18:18
如果未启用位置权限和位置模式,则此功能将无法再在Android Q中使用,请参阅issuetracker.google.com/issues/136021574。
– Konsumierer
19年6月27日在8:35
#9 楼
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
boolean is3g = manager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
boolean isWifi = manager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
Log.v("", is3g + " ConnectivityManager Test " + isWifi);
if (!is3g && !isWifi) {
Toast.makeText(
getApplicationContext(),
"Please make sure, your network connection is ON ",
Toast.LENGTH_LONG).show();
}
else {
// Put your function() to go further;
}
评论
最好添加一些解释,而不只是添加代码。
– EdChum
2012年10月28日在0:15
我会使用isConnected(),文档说:boolean isConnectedOrConnecting()指示网络连接是否存在或正在建立中。这对于需要执行与网络相关的任何事情(而不是读取或写入数据)的应用程序来说都是很好的。对于后者,请调用isConnected(),以确保网络完全可用。
– 18446744073709551615
13年1月21日在10:12
#10 楼
许多答案都使用了不赞成使用的代码,或者使用了更高版本的API版本上的代码。现在我用这样的东西ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager != null) {
for (Network net : connectivityManager.getAllNetworks()) {
NetworkCapabilities nc = connectivityManager.getNetworkCapabilities(net);
if (nc != null && nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
&& nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET))
return true;
}
}
return false;
#11 楼
以下代码(在Kotlin中)从API 21开始运行,直到至少当前的API版本(API 29)为止。函数getWifiState()返回WiFi网络状态的三个可能值之一:
禁用,EnabledNotConnected
这可以做出更精细的决定,例如通知用户启用WiFi或(如果已启用)连接到可用网络之一。
需要的是一个布尔值,指示WiFi接口是否已连接到网络,然后另一个函数isWifiConnected()会为您提供。它使用了前一个答案,并将结果与Connected进行了比较。
它的灵感来自先前的一些答案,但试图解决由于Android API的演进或IP V6可用性的缓慢增长而引入的问题。
诀窍是使用:
wifiManager.connectionInfo.bssid != null
getIpAddress()== 0即仅适用于IP V4或
getNetworkId()== -1,现在需要另一个特殊权限(位置)
根据文档:https://developer.android.com/reference /kotlin/android/net/wifi/WifiInfo.html#getbssid
如果未连接到网络,则将返回null。即使我们没有获得真实值的权限,但如果我们连接后,它仍会返回null以外的值。
还请注意以下几点:
在android.os.Build.VERSION_CODES#N之前的版本中,此对象
只能从Context#getApplicationContext()获取,并且
不能从任何其他派生上下文获取以避免内存泄漏。在
调用过程中。
在清单中,不要忘记添加:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
建议的代码是:
class MyViewModel(application: Application) : AndroidViewModel(application) {
// Get application context
private val myAppContext: Context = getApplication<Application>().applicationContext
// Define the different possible states for the WiFi Connection
internal enum class WifiState {
Disabled, // WiFi is not enabled
EnabledNotConnected, // WiFi is enabled but we are not connected to any WiFi network
Connected, // Connected to a WiFi network
}
// Get the current state of the WiFi network
private fun getWifiState() : WifiState {
val wifiManager : WifiManager = myAppContext.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
return if (wifiManager.isWifiEnabled) {
if (wifiManager.connectionInfo.bssid != null)
WifiState.Connected
else
WifiState.EnabledNotConnected
} else {
WifiState.Disabled
}
}
// Returns true if we are connected to a WiFi network
private fun isWiFiConnected() : Boolean {
return (getWifiState() == WifiState.Connected)
}
}
#12 楼
试用此方法。public boolean isInternetConnected() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
boolean ret = true;
if (conMgr != null) {
NetworkInfo i = conMgr.getActiveNetworkInfo();
if (i != null) {
if (!i.isConnected()) {
ret = false;
}
if (!i.isAvailable()) {
ret = false;
}
}
if (i == null)
ret = false;
} else
ret = false;
return ret;
}
此方法将有助于查找是否可用的Internet连接。
评论
我正在专门查看活动连接是否为wifi。同样,无需对conMgr进行空检查,它永远不会为空。
–内森·史威文(Nathan Schwermann)
2013年12月6日15:49
你能检查一下这个问题吗? :(
–Skizo-ozᴉʞS
15年8月2日在13:21
#13 楼
这对我有用: ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// Mobile
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
// Wi-Fi
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
// And then use it like this:
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING)
{
Toast.makeText(Wifi_Gprs.this,"Mobile is Enabled :) ....",Toast.LENGTH_LONG).show();
}
else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING)
{
Toast.makeText(Wifi_Gprs.this,"Wifi is Enabled :) ....",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(Wifi_Gprs.this,"No Wifi or Gprs Enabled :( ....",Toast.LENGTH_LONG).show();
}
并添加此权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
#14 楼
这是我在应用程序中用作实用工具的方法:public static boolean isDeviceOnWifi(final Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi != null && mWifi.isConnectedOrConnecting();
}
评论
最好指出,在检查建立连接时,isConnectedOrConnecting方法很重要。 IsConnected方法不适用于我。
– Vincent
16年8月4日在4:33
#15 楼
在新版本的Androidprivate void getWifiInfo(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Network[] networks = connManager.getAllNetworks();
if(networks == null || networks.length == 0)
return;
for( int i = 0; i < networks.length; i++) {
Network ntk = networks[i];
NetworkInfo ntkInfo = connManager.getNetworkInfo(ntk);
if (ntkInfo.getType() == ConnectivityManager.TYPE_WIFI && ntkInfo.isConnected() ) {
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null) {
// add some code here
}
}
}
}
并添加权限
评论
connManager.getAllNetworks()需要API级别21。
–贾旺·辛格(Jawand Singh)
19年4月1日在4:55
#16 楼
与@Jason Knight答案类似,但以Kotlin方式:val connManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
if (mWifi.isConnected) {
// Do whatever
}
评论
ConnectivityManager.TYPE_WIFI已弃用
–JérômePietri
2月3日,11:06
#17 楼
这是一个更简单的解决方案。请参阅堆栈溢出问题。在Android上检查是否启用了Wi-Fi。
PS。不要忘记将代码添加到manifest.xml文件以允许权限。如下所示。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
#18 楼
尝试wifiManager.getConnectionInfo().getIpAddress()
这将返回0,直到设备具有可用的连接(在我的机器上是Samsung SM-T280,Android 5.1.1)。
#19 楼
如果未按如下所示激活WIFI,则可以将其打开1.检查@Jason Knight回答的WIFI状态
2.如果未激活,请激活它
不要忘记添加WIFI清单文件中的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
您的Java类应该是这样的
public class TestApp extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//check WIFI activation
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected() == false) {
showWIFIDisabledAlertToUser();
}
else {
Toast.makeText(this, "WIFI is Enabled in your devide", Toast.LENGTH_SHORT).show();
}
}
private void showWIFIDisabledAlertToUser(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("WIFI is disabled in your device. Would you like to enable it?")
.setCancelable(false)
.setPositiveButton("Goto Settings Page To Enable WIFI",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
Intent callGPSSettingIntent = new Intent(
Settings.ACTION_WIFI_SETTINGS);
startActivity(callGPSSettingIntent);
}
});
alertDialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
dialog.cancel();
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}
}
#20 楼
为JAVA添加此文件:public boolean CheckWifiConnection() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}
在清单文件中添加以下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
#21 楼
有点旧的问题,但这是我用的。需要最低api级别21还考虑了不赞成使用的Networkinfo api。boolean isWifiConn = false;
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Network network = connMgr.getActiveNetwork();
if (network == null) return false;
NetworkCapabilities capabilities = connMgr.getNetworkCapabilities(network);
if(capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
isWifiConn = true;
Toast.makeText(context,"Wifi connected Api >= "+Build.VERSION_CODES.M,Toast.LENGTH_LONG).show();
}else{
Toast.makeText(context,"Wifi not connected Api >= "+Build.VERSION_CODES.M,Toast.LENGTH_LONG).show();
}
} else {
for (Network network : connMgr.getAllNetworks()) {
NetworkInfo networkInfo = connMgr.getNetworkInfo(network);
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) {
isWifiConn = true;
Toast.makeText(context,"Wifi connected ",Toast.LENGTH_LONG).show();
break;
}else{
Toast.makeText(context,"Wifi not connected ",Toast.LENGTH_LONG).show();
}
}
}
return isWifiConn;
#22 楼
val wifi = context!!.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?
if (wifi!!.isWifiEnabled)
//do action here
else
//do action here
#23 楼
在较新的android版本中总结其他答案:private boolean checkWifiOnAndConnected()
{
ConnectivityManager connMgr =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Network network = connMgr.getActiveNetwork();
if (network != null)
{
NetworkCapabilities networkCapabilities = connMgr.getNetworkCapabilities(network);
return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
}
return false;
}
评论
需要注意的是(对于我们这里的新手来说),您需要将android.permission.ACCESS_NETWORK_STATE添加到您的AndroidManifest.xml中,此功能才能起作用。
– mgalgs
2011年9月24日在8:56
在最新版本的Android中,您需要在mWiFi中检查NULL ...此处的代码可能会引发空指针错误。请参阅developer.android.com/training/basics/network-ops/managing.html,尤其是“方法getActiveNetworkInfo()返回NetworkInfo ...”。
–eb80
2014年6月5日12:24
它也适用于我的以太网接口。我刚刚更改为ConnectivityManager.TYPE_ETHERNET
– MBH
2015年9月23日在7:47
API-23现在不再使用NetworkInfo.isConnected()方法。我在下面发布解决方案。
–革命
16年1月20日在15:37
API 28中现已弃用NetworkInfo.getType()和ConnectivityManager.TYPE_WIFI。为避免出现棉绒警告,应使用诸如ConnectivityManager.getNetworkCapabilities(network).hasTransport(NetworkCapabilities.TRANSPORT_WIFI)之类的东西。
–Vadik
18-10-9在9:55