Android功能模块化之网络连接状态判断
2013-05-15 15:05
507 查看
有些时候在程序中需要判断网络连接状态、GPS连接状态等,主要是通过调用context.getSystemService(String name)来获取系统相应的服务,再通过相应的服务去判断其状态信息。
(1)判断网络是否可用
传入Name | 返回对象 | 说明 |
WINDOW_SERVICE | WindowManager | 管理打开的窗口程序 |
LAYOUT_INFLATER_SERVICE | LayoutInflater | 取得xml里定义的view |
ACTIVITY_SERVICE | ActivityManager | 管理应用程序的系统状态 |
POWER_SERVICE | PowerManager | 电源服务 |
ALARM_SERVICE | AlarmManager | 闹钟服务 |
NOTIFICATION_SERVICE | NotificationManager | 状态栏服务 |
KEYGUARD_SERVICE | KeyguardManager | 键盘锁服务 |
LOCATION_SERVICE | LocationManager | 位置服务,如GPS |
SEARCH_SERVICE | SearchManager | 搜索服务 |
VERATOR_SERVICE | Vebrator | 手机震动的服务 |
CONNECTIVITY_SERVICE | Connectivity | 网络连接服务 |
WIFI_SERVICE | WifiManager | WiFi服务 |
TELEPHONY_SERVICE | TelephonyManager | 电话服务 |
public static boolean isNetworkAvailable(Context context) { boolean flag = false; ConnectivityManager cManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (cManager != null) { NetworkInfo[] infos = cManager.getAllNetworkInfo(); if (infos != null) { for (int i = 0; i < infos.length; i++) { if (infos[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return flag; }(2)判断GPS是否打开
public static boolean isGpsEnabled(Context context) { LocationManager locationManager = (LocationManager) context .getSystemService(Context.LOCATION_SERVICE); List<String> accessibleProviders = locationManager.getAllProviders(); return accessibleProviders != null && accessibleProviders.size() > 0; }(3)判断Wifi是否连接
public static boolean isWifiEnabled(Context context) { ConnectivityManager cManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); TelephonyManager tManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return ((cManager.getActiveNetworkInfo() != null && cManager .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || tManager .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS); }(4)判断3G网络是否连接
public static boolean is3GEnabled(Context context) { ConnectivityManager cManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cManager.getActiveNetworkInfo(); return (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE); }(5)判断当前网络是wifi还是3G
public static boolean isWifiOr3G(Context context) { ConnectivityManager cManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { return true; } return false; }
相关文章推荐
- Android - 小功能 - Android--判断网络连接状态
- android 判断手机网络连接状态
- Android 一个判断网络连接状态的简单方法
- Android判断设备网络连接状态,并判断连接方式
- Android Network --判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- Android-判断网络连接是否可用及监控网络状态
- Android Network ——判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- Android判断网络连接状态,判断网络连接方式,获取IP地址
- Android Network -------------------判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- Android判断设备网络连接状态,并判断连接方式
- Android中判断是否有网络连接以及网络监控状态
- Android: 判断网络连接状态及连接类型
- Android中判断网络连接是否可用及监控网络状态
- Android 判断网络状态,网络无连接时 打开网络设置对话框
- Android中判断网络连接是否可用及监控网络状态
- android 网络连接状态判断与数据类型
- 4.2.2.5 android 判断3G、wifi、2G等网络状态连接
- Android中判断网络连接是否可用及监控网络状态
- 【Android Training - Performance】优化电池续航能力[Lesson 3 - 判断并监测网络连接状态]
- Android开发监听判断网络连接状态的方法