java– 检索wifi连接状态(Android)

java– 检索wifi连接状态(Android),第1张

概述我跟着followinglink连接本地wifi.它工作得很完美.我能够连接到我当地的wifi.但是,我真的想要wifi的当前状态,我使用以下代码来获取wifi的状态.但不幸的是,我只能获得’禁用’,’启用’和’扫描’状态,我真的想接收其他中间状态.你能告诉我我做错了吗?publicclassConnectionC

我跟着following link连接本地wifi.它工作得很完美.我能够连接到我当地的wifi.

但是,我真的想要wifi的当前状态,我使用以下代码来获取wifi的状态.但不幸的是,我只能获得’禁用’,’启用’和’扫描’状态,我真的想接收其他中间状态.

你能告诉我我做错了吗?

public class ConnectionChangeReceiver extends broadcastReceiver {    @OverrIDe    public voID onReceive(Context context, Intent intent) {        NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);        Message msg = new Message();        msg.what = 5;        Bundle b = new Bundle();        String sstatus = "UnKNown";        switch(info.getDetailedState()){        case AUTHENTICATING:            sstatus = "Authenticating...";            break;        case    CONNECTED:            sstatus = "Connected";            break;        case    CONNECTING:            sstatus = "Connecting...";            break;        case    disCONNECTED:            sstatus = "disconnected";            break;        case    disCONNECTING:            sstatus = "disconnecting...";            break;        case    Failed:            sstatus = "Failed";            break;        case    IDLE:            sstatus = "IDle";            break;        case    OBTAINING_IPADDR :            sstatus = "Obtaining IP Address...";            break;        case    SCANNING:            sstatus = "Scanning...";            break;        case    SUSPENDED:            sstatus = "Suspended";            break;        }        b.putString("status", sstatus);        msg.setData(b);        mHandler.sendMessage(msg);    }}

我按以下方式注册广播接收器

IntentFilter filter = new IntentFilter(        ConnectivityManager.CONNECTIVITY_ACTION);    registerReceiver(networkStateReceiver, filter);

解决方法:

注册一个reciver ::

mIntentFilter = new IntentFilter();  mIntentFilter.addAction(WifiManager.SCAN_RESulTS_AVAILABLE_ACTION);  mIntentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);  mIntentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);  mIntentFilter.addAction(WifiManager.SUPPliCANT_CONNECTION_CHANGE_ACTION);  registerReceiver(mReceiver, mIntentFilter);public voID onReceive(Context context, Intent intent)   {    String action  = intent.getAction();    if(action.equals(WifiManager.SCAN_RESulTS_AVAILABLE_ACTION))    {    }else if(action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION))    {     int iTemp = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,       WifiManager.WIFI_STATE_UNKNowN);     LogUtil.d(LOG_SET, "+++++++-----------wifiStateReceiver------+++++++", DEBUG);     checkState(iTemp);    }else if(action.equals(WifiManager.SUPPliCANT_CONNECTION_CHANGE_ACTION))    {     DetailedState state =WifiInfo.getDetailedStateOf((SupplicantState)     intent.getParcelableExtra(WifiManager.EXTRA_SUPPliCANT_CONNECTED));     changeState(state);     LogUtil.d(LOG_SET, "------------>>>>SUPPliCANT_STATE_CHANGED_ACTION<<<<<<-------", DEBUG);    }    else if(action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION))    {        DetailedState state=       ((NetworkInfo)intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO)).getDetailedState();       changeState(state);     }   }   private voID changeState(DetailedState aState)    {     LogUtil.d(LOG_SET, ">>>>>>>>>>>>>>>>>>changeState<<<<<<<<<<<<<<<<"+aState, DEBUG);   if (aState == DetailedState.SCANNING)   {   Log.d("wifiSupplicanState", "SCANNING");   }   else if (aState == DetailedState.CONNECTING)   {   Log.d("wifiSupplicanState", "CONNECTING");   }else if(aState == DetailedState.OBTAINING_IPADDR)   {   Log.d("wifiSupplicanState", "OBTAINING_IPADDR");   }   else if (aState == DetailedState.CONNECTED)   {   Log.d("wifiSupplicanState", "CONNECTED");   }   else if (aState == DetailedState.disCONNECTING)   {    Log.d("wifiSupplicanState", "disCONNECTING");   }   else if (aState == DetailedState.disCONNECTED)   {    Log.d("wifiSupplicanState", "disCONNECTTED");   }   else if (aState == DetailedState.Failed)   {   }  }  public voID checkState(int aInt)  {   LogUtil.d(LOG_SET,"==>>>>>>>>checkState<<<<<<<<"+aInt, DEBUG);   if (aInt == WifiManager.WIFI_STATE_ENABliNG)    {    Log.d("WifiManager", "WIFI_STATE_ENABliNG");    }   else if (aInt== WifiManager.WIFI_STATE_ENABLED)   {   Log.d("WifiManager", "WIFI_STATE_ENABLED");    }    else if (aInt == WifiManager.WIFI_STATE_disABliNG)    {    Log.d("WifiManager", "WIFI_STATE_disABliNG");    }    else if (aInt == WifiManager.WIFI_STATE_Disabled)    {    Log.d("WifiManager", "WIFI_STATE_Disabled");    }  }
总结

以上是内存溢出为你收集整理的java – 检索wifi连接状态(Android)全部内容,希望文章能够帮你解决java – 检索wifi连接状态(Android)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存