Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。

package com.example.network;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class NetworkUtil {/** * 检查网络是否可用 *  * @param context * @return */public static boolean isNetworkAvailable(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);if (manager == null) {return false;}NetworkInfo networkinfo = manager.getActiveNetworkInfo();if (networkinfo == null || !networkinfo.isAvailable()) {return false;}return true;}}


当网络不可用的时候,我们应该提供一个 界面让用户区设置网络连接。Android 2.3以上跟Android 2.3以前的设置方式是不一样的,我们需要判断一下。

package com.example.network;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onStart() {Log.i("MainActivity", "onStart");if (!NetworkUtil.isNetworkAvailable(this)) {showSetNetworkUI(this);} else {Toast.makeText(this, "网络可用...", 0).show();}super.onStart();}@Overrideprotected void onResume() {Log.i("MainActivity", "onStart");super.onResume();}/* * 打开设置网络界面 */public void showSetNetworkUI(final Context context) {// 提示对话框AlertDialog.Builder builder = new Builder(context);builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubIntent intent = null;// 判断手机系统的版本 即API大于10 就是3.0或以上版本if (android.os.Build.VERSION.SDK_INT > 10) {intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);} else {intent = new Intent();ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");intent.setComponent(component);intent.setAction("android.intent.action.VIEW");}context.startActivity(intent);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}}).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


记得在 Manifest文件中加入以下权限

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






更多相关文章

  1. Android 用AsyncTask下载网络图片并显示百分比
  2. [Android UI界面] android中仿iphone实现listview的反弹效果
  3. android中跳转系统自带的界面
  4. Web后台和Android前端之间的网络通信
  5. Android网络操作
  6. Android控件笔记——在界面中显示图片
  7. Android自动提示--AutoCompleteTextView、MultiAutoCompleteText

随机推荐

  1. 双链表
  2. 强制GDM登陆界面到主显示器
  3. httprunner3.x遇到的问题(hrun make报错)
  4. Python显示周边全部的Pokemon小精灵
  5. 手动部署ceph octopus集群
  6. 从Dubbo内核聊聊双亲委派机制
  7. Python程序员招聘市场简要报告
  8. MySQL主从不同步问题解决
  9. 从解决开发环境问题聊聊为什么要看源码
  10. Dubbo和JDK的SPI究竟有何区别?