关闭

app判断当前网络是否可用并开启wifi和开启GPRS

695人阅读 评论(0) 收藏 举报
    /**
     * 判断当前网络是否可用
     * @param context
     * @return false不可用  true可用
     */
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm == null) {
        } else {
            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;
    }


    /**
     * WIFI网络开关
     * enabled 传ture打开wifi
     */
    private void toggleWiFi(Context context, boolean enabled) {
        WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        wm.setWifiEnabled(enabled);
    }


这个方法在4.3可行,在6.0不行  还在寻找可行方法,有可能是权限的问题。

    /**
     * 移动网络开关
     * enabled 传ture打开wifi
     */
    private void setMobileDataEnabled(Context context, boolean enabled) {
        final String TAG = "setMobileDataEnabled";
        final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        Class conmanClass;
        try {
            conmanClass = Class.forName(conman.getClass().getName());
            final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
            iConnectivityManagerField.setAccessible(true);
            final Object iConnectivityManager = iConnectivityManagerField.get(conman);
            final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
            final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
            setMobileDataEnabledMethod.setAccessible(true);

            setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            Log.d(TAG, "ClassNotFoundException");
        } catch (NoSuchFieldException e) {
            Log.d(TAG, "NoSuchFieldException");
        } catch (IllegalArgumentException e) {
            Log.d(TAG, "IllegalArgumentException");
        } catch (IllegalAccessException e) {
            Log.d(TAG, "IllegalAccessException");
        } catch (NoSuchMethodException e) {
            Log.d(TAG, "NoSuchMethodException");
        } catch (InvocationTargetException e) {
            Log.d(TAG, "InvocationTargetException");
        } finally {

        }

    }

加上权限:

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>


0
0
查看评论

Android 判断网络是GPRS还是WIFI

package com.cwq.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net...
  • qq756703833
  • qq756703833
  • 2014-05-27 10:22
  • 822

Android判断网络连接是否可用,WiFi、移动数据是否打开等

Android判断网络连接是否可用,WiFi、移动数据是否打开等 添加权限 代码 //判断网络连接是否可用 public static boolean isNetworkAvailable(Context context) { ConnectivityMan...
  • shenyuanqing
  • shenyuanqing
  • 2015-10-19 14:33
  • 8015

Android下检测手机移动网络、WIFI网络是否开启或链接

Unity下Android检测手机移动网络、WIFI网络是否开启或链接
  • shengruqing
  • shengruqing
  • 2017-01-11 17:40
  • 1314

Android判断GPS及网络是否开启

用高德地图做打车软件,在输入地址要搜索匹配是没有网络不能进行搜索,以及为了定位更准确要开启GPS状态,若没有开启则弹出对话框提示,选择时则跳转到控制界面去。 下面是对GPS是否连接做的判断,为开启弹出对话框提示,代码: private void initGPS() { Locati...
  • q394895302
  • q394895302
  • 2016-04-01 10:51
  • 4415

判断网络是否可用以及当前手机的网络类型

前言 android的入门开发教程最近都没怎么更新,实在是抱歉,主要是最近公司的项目赶,实在是抽不出时间来写,但最近一定会补上。公司一直都没有配电脑,没办法,一个字:穷!我之前一直都用的我用了5年的华硕电脑,但是编译项目实在是太卡了。我实在是忍不了了。所以上个星期我新换了电脑,1w5的mac,真是...
  • lqw_student
  • lqw_student
  • 2016-11-08 10:40
  • 500

Android 判断开启网络,wifi是否可用

Android 判断开启网络,wifi是否可用
  • vatty748895431
  • vatty748895431
  • 2014-04-23 17:12
  • 1770

判断 iOS wifi 是否打开

判断 iOS wifi 是否打开 的两种方法
  • xiong1081
  • xiong1081
  • 2016-05-04 12:09
  • 1456

Android中判断网络是否可用的代码_大企鹅

这篇文章主要介绍了Android中判断网络是否可用的代码分享, 本文直接给出实现代码,需要的朋友可以参考下import android.content.BroadcastReceiver; import android.content.Context; import android.content...
  • w630886916
  • w630886916
  • 2016-10-17 15:29
  • 3446

Reachability用于在任何地方判断网络是否可用

#import #import "Reachability.h" @interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window; @property (strong,...
  • huang2009303513
  • huang2009303513
  • 2014-09-25 11:08
  • 7868

通过JS判断网络状态调研及实例demo说明

官方文档 English Document demo地址 [demo]http://mjs.sinaimg.cn/wap/online/cms/article/cm/network.html) demo来源于地址http://www.w3cmark.com/2016/442.html 摘要 在设备...
  • sinat_17775997
  • sinat_17775997
  • 2017-10-22 10:21
  • 215
    个人资料
    • 访问:284122次
    • 积分:4549
    • 等级:
    • 排名:第7764名
    • 原创:168篇
    • 转载:126篇
    • 译文:0篇
    • 评论:42条
    联系方式
    zhanglihow@gmail.com
    博客专栏
    最新评论