我正在开发一款需要收听wifi更改的应用。当用户设备检测到某个wifi ssid时,我需要在设备上显示通知。通知将允许用户根据需要执行操作。
我发现此信息类似于Android WIFI How To Detect When Specific WIFI Connection is Available
我真正想知道的是,在应用程序中我在哪里收听Wifi更改?要听的代码在哪里,以及如何让应用程序在后台有效地监听。
我真的很感激任何帮助,谢谢
答案 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;
}
}