2014-02-13 50 views
0

我正在开发一个没有GUI的应用程序。当Wifi按钮被改变(ON或OFF)时,它应该开始它的服务。 这是我的清单文件:如何捕捉无线网络变化?

<receiver android:name="com.updater.wifitester.NetWatcher"> 
     <intent-filter 
      android:priority="100"> 
     <action 
      android:name="android.net.wifi.WIFI_STATE_CHANGED" 
      android:enabled="true" 
      /> 

     </intent-filter> 
    </receiver> 

下面是我给的权限:

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

我扩展的广播接收器:

public class NetWatcher extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
     if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) { 
       //check intents and service to know if all is ok then set bWifiStateOk accordingly 
       Toast.makeText(context, "Wifi on", Toast.LENGTH_LONG).show(); 
       Log.i("wifi_state_changed","wifi changed..."); 
      } else { 
       return ; // do nothing ... we're not in good intent context doh ! 
      } 
    } 
} 

但有没有在日志猫并没有显示Toasts。我错过了什么? 请帮我家伙...

+0

检查:http://stackoverflow.com/q/10733121/1739882 –

回答

0

试试这个

<intent-filter> 
     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
</intent-filter> 
+0

的吐司将显示,如果连接发生变化,对不对? –

+0

它倾向于使用Logcat打印比Toast更好。 –