Android 代碼設置網絡開關

需要添加權限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
//系統級應用
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>

WIFI 開關 設置

 /**
     * set wifi
     * android Q 版本以下可以使用
     */
    private void changeWiFi() {
        mWifiService = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        if (mWifiService.isWifiEnabled()){
            mWifiService.setWifiEnabled(false);
        }else {
            mWifiService.setWifiEnabled(true);
        }
    }

4G網絡開關設置,支持5.0以上版本(系統權限下,否則報錯)

 /**
     * 設置網絡
     * @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();
        }
    }

    /**
     * 獲取當前網絡狀態
     * @param context
     * @return
     */
    public boolean getMobileDataState(Context context) {
         TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
         try {
              Method getDataEnabled = telephonyService.getClass().getDeclaredMethod("getDataEnabled");
              if (null != getDataEnabled) {
                  return (Boolean) getDataEnabled.invoke(telephonyService);
              }
         } catch (Exception e) {
           e.printStackTrace();
         }
           return false;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章