需要权限

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
  /**     * 8.0 开启wifi热点方法     * @param apName      wifi热点帐号     * @param apPassword  wifi热点密码     */    public boolean setWifiAp(String apName, String apPassword) {        try {            //热点的配置类            WifiConfiguration apConfig = new WifiConfiguration();            //配置热点的名称(可以在名字后面加点随机数什么的)            apConfig.SSID = apName;            apConfig.preSharedKey = apPassword;            //不设置密码            apConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);            //android 8.0开启wifi热点            if (Build.VERSION.SDK_INT >= 26) {                Method configMethod = mWifiManager.getClass().getMethod("setWifiApConfiguration", WifiConfiguration.class);                boolean isConfigured = (Boolean) configMethod.invoke(mWifiManager, apConfig);                method = mWifiManager.getClass().getMethod("startSoftAp", WifiConfiguration.class);                //返回热点打开状态                return (Boolean) method.invoke(mWifiManager, apConfig);            } else {                //通过反射调用设置热点                method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);                //返回热点打开状态                return (Boolean) method.invoke(mWifiManager, apConfig, true);            }        } catch (NoSuchMethodException e) {            e.getMessage();            return false;        } catch (IllegalAccessException e) {            e.printStackTrace();            return false;        } catch (InvocationTargetException e) {            e.printStackTrace();            return false;        }    }    /**     * 关闭wifi 热点     * @return     */    public boolean closeWifiAp() {        //热点的配置类        WifiConfiguration apConfig = new WifiConfiguration();        try {            //android 8.0关闭wifi热点            if (Build.VERSION.SDK_INT >= 26) {                method = mWifiManager.getClass().getDeclaredMethod("stopSoftAp");                return (Boolean) method.invoke(mWifiManager);            } else {                method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);                //返回热点关闭状态                return (Boolean) method.invoke(mWifiManager, apConfig, false);            }        } catch (Exception e) {            e.getMessage();            return false;        }    }    /**     * 打开移动网络     * @param context     * @param enabled 是否打开     */    public void setMobileDataState(Context context, boolean enabled) {        TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);        try {            Method setDataEnabled = telephonyService.getClass().getDeclaredMethod("setDataEnabled",boolean.class);            if (null != setDataEnabled) {                setDataEnabled.invoke(telephonyService, enabled);            }        } catch (Exception e) {            e.printStackTrace();        }    }

更多相关文章

  1. Android_UI_全屏去掉标题栏和状态栏的两种方法
  2. Android(安卓)管理Fragments FragmentManager浅析
  3. Android程序监听Home键
  4. android webview将网页内容导出为图片和PDF方法
  5. android AutoCompleteTextView 的 setAdapter方法的坑! 设置进去
  6. Android中图片保存到本地,并及时更新到系统相册
  7. Android(安卓)AndroidManifest.xml配置文件
  8. android PhoneGap 入门
  9. android PhoneGap 自定义插件

随机推荐

  1. Android(安卓)模拟器快捷键
  2. android 自定义控件(FloatLabelLayout)
  3. Android自定义控件
  4. android_ndk_jni_cygwin环境
  5. 【Android(安卓)Studio】Gradle Plugin U
  6. Android(安卓)Material Design 实践(一)
  7. Android(安卓)代码混淆异常 transformCla
  8. Android(安卓)tricks: the ideal way to
  9. 一个简单的例子让你彻底了解android 中Ac
  10. Android(安卓)Studio 编译不通过,报错“找