创建一个WiFi热点

之前使用perfence臃仲还修改布局麻烦只是简单几个item 后面索性自己重新做一个目前只是个简单实现不能再重新配置后进行重启有好的建议前辈还望指点谢谢!布局简单主要还是反射


public class WifiHot extends Dialog{

    private final Context mContext;
    private final View mView;
    private final SwitchButton mWifi_hot;
    private EditText mSsid, mPassWord;
    String ssid_Number, password_Number;
    public static final String TAG = "WifiHot";
    private WifiManager mWifiManager;

    public WifiHot(Context context) {
        super(context, R.style.FullscreenTheme);
        mContext = context;
        mView = View.inflate(mContext, R.layout.host_pot, null);
        super.setContentView(mView);
        mWifi_hot = (SwitchButton) mView.findViewById(R.id.checkbox);
        mSsid = (EditText) mView.findViewById(R.id.edi_ssid);
        mPassWord = (EditText) mView.findViewById(R.id.edi_PassWord);
        mSsid.setText((String) UtilSharedPreferences.get(mContext,"ssid_Number","zma"));
        mPassWord.setText((String) UtilSharedPreferences.get(mContext,"password_Number","12345678"));
        mWifi_hot.setChecked((Boolean) UtilSharedPreferences.get(mContext,"cheState",true));
        mWifi_hot.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if (b == true) {
                    ssid_Number = mSsid.getText().toString();
                    password_Number = mPassWord.getText().toString();
                    Log.i(TAG, "onCheckedChanged: "+ssid_Number+"=="+password_Number);
                    setWifiApEnable(ssid_Number, password_Number, b);
                    UtilSharedPreferences.put(mContext,"ssid_Number",ssid_Number);
                    UtilSharedPreferences.put(mContext,"password_Number",password_Number);
                    UtilSharedPreferences.put(mContext,"cheState",b);
                } else {
                    UtilWifiHotspot.closeWifiHotPoint(mWifiManager);
                    UtilSharedPreferences.put(mContext,"cheState",b);
                }
            }
        });
        mSsid.addTextChangedListener(new TextWatcher(){
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                Log.i(TAG, "beforeTextChanged: ");
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                Log.i(TAG, "onTextChanged: ");
            }

            @Override
            public void afterTextChanged(Editable editable) {
                Log.i(TAG, "afterTextChanged: ");
            }
        });

        mSsid.addOnLayoutChangeListener(new View.OnLayoutChangeListener(){
            @Override
            public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {

            }
        });
    }


    public void setWifiApEnable(String ssid, String password, boolean flag) {
        if (ssid_Number == null || mPassWord == null) return;
        mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
        if ((flag == true) && (mWifiManager.getConnectionInfo() != null)) {
            mWifiManager.setWifiEnabled(false);
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            try {
                WifiConfiguration config = new WifiConfiguration();
                config.SSID = ssid_Number;
                config.preSharedKey = password_Number;
                config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);

                config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                config.status = WifiConfiguration.Status.ENABLED;
                Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
                method.invoke(mWifiManager, config, flag);
            } catch (Exception e) {
                e.printStackTrace();
                Log.i(TAG, "setWifiApEnable: " + e);
            }

        }
    }

    @Override
    public void setContentView(int layoutResID) {
    }

    @Override
    public void setContentView(View view, ViewGroup.LayoutParams params) {
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值