Android网络编程实践之旅(三):网络状态检测(续)

        前面写过一篇关于网络状态检测的博文章,看连接点击打开链接。那片文章中,只是检测当前处于活动状态的网络。而且,还有一个不确定的问题:当设备中有多个可用的活动网络时,也只能显示其中之一。在本文中,给出枚举当前设备中所有网络及其状态的方法。

        实现的方法很简单,修改连接文章中,sample程序中的类NetworkExplorer.java的代码如下:

package com.android.sample.NetworkExplorer;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.TextView;

public class NetworkExplorer extends Activity {
	ConnectivityManager cgr;
	NetworkInfo netinfo_arry[];
	TextView netinfo_tv;
	
	int i;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        netinfo_tv = (TextView)findViewById(R.id.netinfo);
        netinfo_tv.setEnabled(false);
        cgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    }

	@Override
	protected void onStart() {
		super.onStart();
		netinfo_arry = cgr.getAllNetworkInfo();
		
		for(i = 0; i < netinfo_arry.length; i++){			
			netinfo_tv.append("Net " + (i + 1) + ": " + netinfo_arry[i].toString() + "\n\n");
		}
	}
}
其余代码不需要作任何改动,再次运行程序结果如下:

1、模拟器上:

Android网络编程实践之旅(三):网络状态检测(续)_第1张图片

2、开发板上:

Android网络编程实践之旅(三):网络状态检测(续)_第2张图片

        结合前面对网络状态信息的分析说明,可以很明显的看出当前设备上可用的各种网络的状态,包括有线的ETH和无线的mobile。



你可能感兴趣的:(编程,android,网络,service,活动,mobile)