/**

*测试ConnectivityManager

*ConnectivityManager主要管理和网络连接相关的操作

*相关的TelephonyManager则管理和手机、运营商等的相关信息;WifiManager则管理和wifi相关的信息。

*想访问网络状态,首先得添加权限<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

*NetworkInfo类包含了对wifi和mobile两种网络模式连接的详细描述,通过其getState()方法获取的State对象则代表着

*连接成功与否等状态。

*

*/


publicvoidtestConnectivityManager(){

ConnectivityManagerconnManager=(ConnectivityManager)this

.getSystemService(CONNECTIVITY_SERVICE);

//获取代表联网状态的NetWorkInfo对象

NetworkInfonetworkInfo=connManager.getActiveNetworkInfo();

//获取当前的网络连接是否可用

booleanavailable=networkInfo.isAvailable();

if(available){

Log.i("通知","当前的网络连接可用");

}

else{

Log.i("通知","当前的网络连接可用");

}

Statestate=connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

if(State.CONNECTED==state){

Log.i("通知","GPRS网络已连接");

}

state=connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

if(State.CONNECTED==state){

Log.i("通知","WIFI网络已连接");

}

//跳转到无线网络设置界面

startActivity(newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));

//跳转到无限wifi网络设置界面

startActivity(newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS));

}


(注意:上面的代码只是示例,直接运行的话有待修改。)

上面判断网络类型的方法只是为了展示用法,其实完全可以通过networkInfo.getType()的返回值来判断。

如:

[java]view plaincopy

Contextcontext=listActivity.getApplicationContext();//获取应用上下文

ConnectivityManagerconnectivityManager=(ConnectivityManager)context

.getSystemService(Context.CONNECTIVITY_SERVICE);//获取系统的连接服务

NetworkInfoactiveNetInfo=connectivityManager.getActiveNetworkInfo();//获取网络的连接情况

if(activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){

//判断WIFI网

}elseif(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE){

//判断3G网

}



android.util.Log常用的方法有以下5个:Log.v()Log.d()Log.i()Log.w()以及Log.e()。根据首字母对应VERBOSE,DEBUG,INFO,WARN,ERROR。

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

注意:不同的打印方法在使用时都是某个方法带上(String tag, String msg)参数,tag表示的是打印信息的标签,msg表示的是需要打印的信息。

下面是我做的一个简单的LogDemo(Step By Step):

Step 1:准备工作(打开LogCat视窗).

启动Eclipse,在Window->Show View会出来一个对话框,当我们点击Ok按钮时,会在控制台窗口出现LogCat视窗.如下图:

Step 2:新建一个Android工程,命名为LogDemo.

Step 3:设计UI界面,我们在这里就加了一个Button按钮(点击按钮出现Log日志信息).

Main.xml代码如下:

[xhtml]view plaincopy

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

<Button

android:id="@+id/bt"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="PresseMeLookLog"

/>

</LinearLayout>


Step 4:设计主类LogDemo.java,代码如下:

[java]view plaincopy

publicclassLogDemoextendsActivity{

privatestaticfinalStringACTIVITY_TAG="LogDemo";

privateButtonbt;

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//通过findViewById找到Button资源

bt=(Button)findViewById(R.id.bt);

//增加事件响应

bt.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewv){

Log.v(LogDemo.ACTIVITY_TAG,"ThisisVerbose.");

Log.d(LogDemo.ACTIVITY_TAG,"ThisisDebug.");

Log.i(LogDemo.ACTIVITY_TAG,"ThisisInformation");

Log.w(LogDemo.ACTIVITY_TAG,"ThisisWarnning.");

Log.e(LogDemo.ACTIVITY_TAG,"ThisisError.");

}

});

}

}


Step 5:运行LogDemo工程,效果如下:

当我们点击按钮时,会触发事件,在Logcat视窗下有如下效果: