当wifi SSID改变时执行代码

时间:2013-11-01 19:30:34

标签: android android-intent service wifi

我想在手机连接的无线网络的SSID发生变化时执行一些操作。如果手机处于“非活动状态”(例如已锁定),这也应该有效。

服务是否是适合此类型的应用程序?我想Android可以让我的服务被这些事件调用吗?我该怎么做?

1 个答案:

答案 0 :(得分:5)

创建一个BroadcastReceiver监听WifiManager.NETWORK_STATE_CHANGED_ACTION,从onReceive中的intent wifiManager.EXTRA_BSSID中获取SSID。

如果您的SSID处理工作很昂贵,请将其卸载到服务中(请参阅BroadcastReceiver.onReceive的文档)。

您的AndroidManifest.xml应如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...>

    <!-- Permission to listen for network changes -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        ...>
        <receiver android:name=".YourBroadcastReceiver" >
            <intent-filter>
                <action android:name="android.net.wifi.STATE_CHANGE" />
            </intent-filter>
        </receiver>
    </application>
</manifest>