很多的应用程序都需要访问网络,所以有时候访问前可以检查网络状态,及时给用户提示。腾讯的微信在手机没有网络的状态下登录,返回的登录失败提示很是怪异,至少也要告诉我为什么登录失败了。提示个 -1 表示无语。
检查网络状态,用到android.net.NetworkInfo类,可以获取详细的网络状态
package demo.networkinfo;
import android.app.Activity;import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
public class TestNetworkInfoActivity extends Activity
{
private TextView state = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
state = (TextView) findViewById(R.id.state);
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null || !ni.isConnectedOrConnecting())
{
Toast.makeText(this, "请检查网络连接", Toast.LENGTH_SHORT).show();
Log.w("8023", "无有效的网络连接");
return;
}
String typeName = ni.getTypeName();
state.setText("网络类型:"+typeName+"\n连接状态:"
+ni.isConnected()+"\n详细描述:"
+ni.getSubtypeName()+"\n"
+ni.describeContents()+"\n"
+ni.getState());
Log.i("8023", typeName);
}
}