我想在手机连接的无线网络的SSID发生变化时执行一些操作。如果手机处于“非活动状态”(例如已锁定),这也应该有效。
服务是否是适合此类型的应用程序?我想Android可以让我的服务被这些事件调用吗?我该怎么做?
答案 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>