我目前正在处理一个需要知道手机是否有互联网连接的应用程序。
使用连接管理器,应用程序能够在有或没有网络连接时生成事件。问题是,我需要连接到我的应用程序的WI-FI本地热点,而这个WI-FI不提供互联网访问。总而言之,ConnectivityManager告诉我有互联网连接,因为我连接到这个Wi-Fi,但这个Wi-Fi没有提供真正的连接。
以下是代码:
public void onReceive(Context context, Intent intent) {
if(intent == null || intent.getExtras() == null)
return;
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = manager.getActiveNetworkInfo();
if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
connected = true;
} else if(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
connected = false;
}
notifyStateToAll();
}
有没有办法指定ConnectivityManager一个特殊的Wi-Fi不提供互联网接入?