我正在创建使用的应用程序
<uses-permission android:name="android.permission.INTERNET" />
我正在使用 WebView 来启动 URL。但是当手机没有连接WIFI和互联网3G时,在WebView中出现的正是URL链接。
如果没有互联网连接,我不希望用户可以在 WebView 中看到 URL 链接,我该怎么做?
最好的问候, 维拉克
检查以下函数的返回(true 表示在线,false 表示不在线)并根据您所追求的修改输出。
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
如果您想要在没有连接的情况下显示弹出窗口或 toast,那么在您的活动中拥有该功能将允许您执行以下操作,这将显示 Toast。
if(!haveNetworkConnection()){
Toast.makeText(this,"No internet connection",Toast.LENGTH_LONG).show();
}else{
//Do whatever you need if there IS connectivity
}
我喜欢使用我给你的功能(几个月前不知道我从哪里复制它),因为它允许我在需要时轻松修改它,只有在我有 wifi 或移动互联网时才返回 true,允许我仅当 wifi 连接可用时才下载高清视频。
检查互联网连接的示例代码;
public static boolean checkInternetConnection(Context context) {
ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
// ARE WE CONNECTED TO THE NET?
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
Log.w(TAG, "Internet Connection NOT Present");
return false;
}
}