【发布时间】:2013-11-01 19:30:33
【问题描述】:
我想在手机连接的无线网络的 SSID 发生变化时执行一些操作。如果手机处于“非活动状态”(例如锁定),这也应该有效。
服务是否适合这种类型的应用程序?我猜 Android 可以让我的服务在此类事件中被调用?我该怎么做?
【问题讨论】:
标签: android android-intent service wifi
我想在手机连接的无线网络的 SSID 发生变化时执行一些操作。如果手机处于“非活动状态”(例如锁定),这也应该有效。
服务是否适合这种类型的应用程序?我猜 Android 可以让我的服务在此类事件中被调用?我该怎么做?
【问题讨论】:
标签: android android-intent service wifi
创建一个BroadcastReceiver 监听WifiManager.NETWORK_STATE_CHANGED_ACTION,从onReceive 中的intent extra 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>
【讨论】: