检测连接失败的最佳方法是什么?
我知道我们应该使用NetworkInfo.getState()来获取连接状态,
并且我还将NETWORK_STATE_CHANGED_ACTION与broadcastReceiver配合使用来检测连接状态的变化.
我认为在这种情况下,在broadcastReceiver中检测到disCONNECTED状态不匹配.
NetworkInfo.State.disCONNECTED意味着仅“断开连接”,并不意味着连接失败.
解决方法:
向WifiManager.SUPPliCANT_STATE_CHANGED_ACTION注册接收器,以便在发生连接失败时得到通知.这可能是由于提供了无效的凭据来连接到WiFi
private voID registerReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); filter.addAction(WifiManager.SUPPliCANT_STATE_CHANGED_ACTION); registerReceiver(mReceiver, filter); }
还有您的接收器
private broadcastReceiver mReceiver = new broadcastReceiver() { @OverrIDe public voID onReceive(Context context, Intent intent) { NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); if (info != null) { if (info.isConnected()) { //connected WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String ssID = wifiInfo.getSSID(); } } else { if (intent.getAction().equals(WifiManager.SUPPliCANT_STATE_CHANGED_ACTION)) { if (intent.hasExtra(WifiManager.EXTRA_SUPPliCANT_ERROR)) { //Failed to connect } } } };
总结 以上是内存溢出为你收集整理的如何检测无法在android中连接wifi?全部内容,希望文章能够帮你解决如何检测无法在android中连接wifi?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)