- /**
- * 判断Android客户端网络是否连接
- * @param context
- * @return 真假
- */public static boolean checkNet(Context context) {
- 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) {
- return false;
- }
- return false;
- }
以上代码只能判断是否有可用的连接,而不能判断是否能连网
- * 检验网络连接 并toast提示
- *
- * @return
- */
- public boolean note_Intent(Context context) {
- ConnectivityManager con = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo networkinfo = con.getActiveNetworkInfo();
- if (networkinfo == null || !networkinfo.isAvailable()) {
- // 当前网络不可用
- Toast.makeText(context.getApplicationContext(), "请先连接Internet!",
- Toast.LENGTH_SHORT).show();
- return false;
- }
- boolean wifi = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
- .isConnectedOrConnecting();
- if (!wifi) { // 提示使用wifi
- Toast.makeText(context.getApplicationContext(), "建议您使用WIFI以减少流量!",
- Toast.LENGTH_SHORT).show();
- }
- return true;
- }
以上转自:http://www.iteye.com/topic/1117733
android中判断网络连接是否可用
http://www.cnblogs.com/codeworker/archive/2012/04/23/2467180.html
一、判断网络连接是否可用
- public static boolean isNetworkAvailable(Context context) {
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if (cm == null) {
- } else {
- //如果仅仅是用来判断网络连接
- //则可以使用 cm.getActiveNetworkInfo().isAvailable();
- NetworkInfo[] info = cm.getAllNetworkInfo();
- if (info != null) {
- for (int i = 0; i < info.length; i++) {
- if (info[i].getState() == NetworkInfo.State.CONNECTED) {
- return true;
- }
- }
- }
- }
- return false;
- }
二、判断GPS是否打开
- public static boolean isGpsEnabled(Context context) {
- LocationManager lm = ((LocationManager) context
- .getSystemService(Context.LOCATION_SERVICE));
- List<String> accessibleProviders = lm.getProviders(true);
- return accessibleProviders != null && accessibleProviders.size() > 0;
- }
三、判断WIFI是否打开
- public static boolean isWifiEnabled(Context context) {
- ConnectivityManager mgrConn = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- TelephonyManager mgrTel = (TelephonyManager) context
- .getSystemService(Context.TELEPHONY_SERVICE);
- return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
- .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
- .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
- }
四、判断是否是3G网络
- public static boolean is3rd(Context context) {
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo networkINfo = cm.getActiveNetworkInfo();
- if (networkINfo != null
- && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
- return true;
- }
- return false;
- }
五、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。
- public static boolean isWifi(Context context) {
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo networkINfo = cm.getActiveNetworkInfo();
- if (networkINfo != null
- && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
- return true;
- }
- return false;
- }
【转自】http://blog.youkuaiyun.com/skiffloveblue/article/details/7904492
在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 {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- @Override
- protected void onStart() {
- Log.i("MainActivity", "onStart");
- if (!NetworkUtil.isNetworkAvailable(this)) {
- showSetNetworkUI(this);
- } else {
- Toast.makeText(this, "网络可用...", 0).show();
- }
- super.onStart();
- }
- @Override
- protected 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() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- Intent 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() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- }
- }).show();
- }
- @Override
- public 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"/>
http://blog.youkuaiyun.com/top_code/article/details/9015381