我正在开发一个在公共 wifi 网络上登录的应用程序。我已经通过向身份验证服务器发送 http 帖子来进行登录。我的下一步是让应用程序在有新的 wifi 连接时自动执行 http post,检查我们是否连接到正确的 ssid。我的问题是,这是最好的方法吗?是创建服务并注册到广播接收器的最佳方式吗?
谢谢你的帮助
我正在开发一个在公共 wifi 网络上登录的应用程序。我已经通过向身份验证服务器发送 http 帖子来进行登录。我的下一步是让应用程序在有新的 wifi 连接时自动执行 http post,检查我们是否连接到正确的 ssid。我的问题是,这是最好的方法吗?是创建服务并注册到广播接收器的最佳方式吗?
谢谢你的帮助
我这样做的方式是我有一个广播接收器来监听android.net.conn.CONNECTIVITY_CHANGE
意图。在该广播接收器中,您可以通过轮询来检查建立了什么样的连接ConnectivityManager
:
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean hasWifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null && cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isAvailable() && cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
然后启动向身份验证服务器发送邮件的服务。
或者,您确实可以让服务监听android.net.conn.CONNECTIVITY_CHANGE
意图并在那里进行 wifi 检查。