设置Gprs

通过反射机制来获取隐藏方法,从而达到目的。


public static boolean toggleGprs(Context mContext, boolean isEnable) {

        ConnectivityManager connManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        ;
        boolean result = true;
        try {
            Class<?> cmClass = connManager.getClass();
            Class<?>[] argClasses = new Class[1];
            argClasses[0] = boolean.class;


            // 反射ConnectivityManager中hide的方法setMobileDataEnabled,可以开启和关闭GPRS网络
            Method method = cmClass.getMethod("setMobileDataEnabled", argClasses);
            method.invoke(connManager, isEnable);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
            result = false;
        }
        return result;
    }

你可能感兴趣的:(反射)