我正在创建应用程序,它使用
<uses-permission android:name="android.permission.INTERNET" />我正在使用WebView启动URL。但是当手机没有连接到WIFI和互联网3G时,在WebView中就会出现准确的网址链接。
我不想让用户在WebView中看到网址链接,如果没有互联网连接,我该怎么做?
致以最好的问候,Virak
发布于 2012-05-18 16:35:14
检查以下函数的返回值(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连接,我可以下载一个高清晰度视频 only 。
发布于 2012-05-18 16:56:40
检查网络连接的示例代码;
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;
}
}https://stackoverflow.com/questions/10649277
复制相似问题