您的位置:首页 > 理论基础 > 计算机网络

android中检测网络的方法及应用

2013-03-25 23:59 435 查看
第一次在这个论坛上写文章,在深夜写点简单的东西,也好!

做android也快两年了!但还没有写过什么文章,主要是没那个习惯去写,现在想通了,还是要写点东西才觉得这两年来没有白过,不然以后想找点东西都是在网络上找,自己写点东西的话就可以在自己的博客中看看就可以了!比别人写的说不定还好!好了!扯淡就到此了!

今天写了一个TV高清播放器上的天气预报,虽然都是以前用过的东西,自己决定写博客了!就不要怕简单,希望自己一直简直下去;

简单的判断网络是否连接:

public static boolean isConnect(Context context) {
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
try {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null){
// 获取网络连接管理的对象
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null&& info.isConnected()) {
// 判断当前网络是否已经连接
if (info.getState() == NetworkInfo.State.CONNECTED){
return true;
}
}
}
} catch (Exception e) {
System.out.println(e.toString());
}
return false;
}


要想在一个应用的开始就判断网络是否可用就可以这样做:写一个Timer的定时器去检测:

TimerTask timerTask = new TimerTask()

{

@Override

public void run() {

//

if(isConnectedFlag){

Intent intent = new Intent(MainActivity.this,TargetActivity.class);

startActivity(intent);//跳转画面也可以进行其他的处理;

}else{

//如果没有网络连接,则弹出提示框;

new AlertDialog.Builder(MainActivity.this)

.setTitle(MainActivity.this.getResources().getString(R.string.internet_err))

.setMessage(MainActivity.this.getResources().getString(R.string.internet_failed))

.setPositiveButton(MainActivity.this.getResources().getString(R.string.internet_yes),

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

progressDialog1.dismiss();

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(0);

}

}).show();

}

};

在onResume()方法中添加启动定时器:

private Timer timer = null;

private boolean isConnectedFlag = true;

//两个变量

@Override

protected void onResume() {

super.onResume();

if(null == timer)

{

// 检测网络

this.isConnectedFlag = isConnect(this);

// 定时 1 秒,自动跳向主界面

timer = new Timer();

timer.schedule(timerTask, 1000);

}

}

当然网络的服务还是要加权限的:

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

通过网络的检测可以加载一个网页:如下为一个网页的加载方法:
private String getXmlInfo(String weather_url){

String service_back_data = null;

HttpGet httpGet = new HttpGet(weather_url);

try {

HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

service_back_data = EntityUtils.toString(httpResponse.getEntity());

return service_back_data;

}

} catch (Exception e) {

System.out.println("e-->>"+e.toString());

e.printStackTrace();

}

return null;

}

返回的数据为网页中所有的字符串数据;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: