BroadcastReceiver无法正常工作(检测wifi是否已连接)

时间:2014-06-19 19:14:22

标签: android

我正在尝试使用BroadcastReceiver来检测wifi是否已连接,只是在状态发生变化时显示一个Toast(wifi断开连接/重新连接/关闭)但它似乎没有工作。有什么想法吗?

ConnectionChangeReceiver类:

public class ConnectionChangeReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive( Context context, Intent intent )
    {
         ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
         NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

         final boolean isWifiConn = networkInfo.isConnected();

         Log.d("debug", "Wifi connected: " + isWifiConn);

         Toast toast = Toast.makeText(context, "Wifi connected: " + isWifiConn, Toast.LENGTH_LONG);
         toast.show();     
    }
}

清单:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


    <receiver android:name="ConnectionChangeReceiver" android:label="NetworkConnection">
        <intent-filter>
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
            <action android:name="android.net.wifi.STATE_CHANGE"/>
        </intent-filter>
    </receiver>

我进入应用程序,断开wifi,重新连接,没有吐司。我禁用wifi,没有吐司。重新启用它,没有吐司。我怀疑广播接收器有问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我明白了。

我的问题在于清单。我把接收器块放在应用程序标签之外。一旦我把它移到里面,它就完美无缺。