我正在努力了解用户何时连接到WiFi网络具有Internet访问权限。
到目前为止,我已经尝试了两种方法来实现这一目标:
BroadcastReceiver
(操作:android.net.conn.CONNECTIVITY_CHANGE
);和NetworkCallback
上注册ConnectivityManager
。它们大多数时候都失败,因为调用它们的回调太早了,因为在网络无法访问Internet时调用它们。
是否有一种方法可以实现我想要的(对于API> = 16)?
我建议通过实现以下代码使用ConnectivityManager监视连接状态
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnected();
有关更多信息,请查看android开发人员指南here