我怎样才能看到Wi-Fi事件?

时间:2012-01-10 08:25:03

标签: java android

我需要制作Android应用程序,它应该每天晚上将一些数据发送到我的服务器。如果没有Wi-Fi连接,应用程序应在连接自动变为可用时发送数据。为什么我可以获得有关Wi-Fi可用性的活动?我应该使用广播接收器吗?请给我一个例子或想法。谢谢

2 个答案:

答案 0 :(得分:1)

在AndroidManifest.xml BroadcastReceiver中注册,检查wifi状态,如:

   <receiver
     android:name=".receivers.WifiStatusReceiver"
     android:label="NetworkChangeReceiver">         
     <intent-filter>             
         <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
         <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />         
     </intent-filter>     
   </receiver>

然后实现您自己的BroadcastReceiver,它将在wi-fi可用时处理事件,以便您可以开始上传/下载

答案 1 :(得分:0)

Android完全支持WiFi连接。主要组件是系统提供的WiFiManager。像往常一样,我们通过getSystemServices()调用当前上下文来获取它。

一旦我们拥有WiFiManager,我们可以以WiFiInfo对象的形式询问它当前的WIFi连接。我们还可以通过getConfiguredNetworks()询问所有当前可用的网络。这为我们提供了WifiConfiguration列表。

     // Setup WiFi
    wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

    // Get WiFi status
    WifiInfo info = wifi.getConnectionInfo();
    // info.toString()

    // List available networks
    List<WifiConfiguration> configs = wifi.getConfiguredNetworks();
    for (WifiConfiguration config : configs) {
        // config.toString()
    }

参考detailed example