侦听wifi的Android应用程序发生变化

时间:2016-04-29 22:24:48

标签: android wifimanager ssid

我正在开发一款需要收听wifi更改的应用。当用户设备检测到某个wifi ssid时,我需要在设备上显示通知。通知将允许用户根据需要执行操作。

我发现此信息类似于Android WIFI How To Detect When Specific WIFI Connection is Available

我真正想知道的是,在应用程序中我在哪里收听Wifi更改?要听的代码在哪里,以及如何让应用程序在后台有效地监听。

我真的很感激任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

如果您希望在后台运行此类任务,即使您的应用程序未正常运行,也应使用服务(https://developer.android.com/reference/android/app/Service.html)。

如果这应该从用户安装应用程序的所有时间开始运行,您可以监听启动广播并启动服务。如果您在设备启动后注册,我不确定是否会收到此广播通知。您可以在启动活动后启动服务来解决此问题。

要确保服务在后台运行,您需要在onStartCommand中返回START_STICKY。 (请参阅下面的代码段)。但请注意,该服务将一直运行,直到您停止它或执行此操作时卸载您的应用程序。

这是一个片段,可以帮助您开始与已经找到的链接结合使用。

public class WifiListener extends Service {

@Override
public void onCreate() {
    super.onCreate();

     // Register broadcast receiver here
}

@Override
public void onDestroy() {
    super.onDestroy();

    // Stop listening to broadcast receiver here
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

}