Android应用开发android 生成wifi热点以及扫描连接wifi
白羽 2019-03-25 来源 :网络 阅读 918 评论 0

摘要:本文将带你了解Android应用开发android 生成wifi热点以及扫描连接wifi,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发android 生成wifi热点以及扫描连接wifi,希望本文对大家学Android有所帮助。



Android应用开发android 生成wifi热点以及扫描连接wifi


前段时间,有个朋友找我。做个小项目,就是可以生成wifi热点,然后给二维码给其他手机连接。那么这个项目就包括功能有:wifi连接,生成wifi热点,生成二维码,扫描二维码进行wifi连接。里面用到了zxing这个库。
   
    1,图片展示
    \
   
    \2,生成wifi热点
   
   
    /**
     * 创建热点
     */
    public class WifiApAdmin {
        public static final String TAG =   Show;
     
        public static void   closeWifiAp(Context context) {
            WifiManager wifiManager =   (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            closeWifiAp(wifiManager);
        }
     
        private WifiManager mWifiManager   = null;
     
        private Context mContext =   null;
     
        public WifiApAdmin(Context   context) {
            mContext = context;
     
            mWifiManager = (WifiManager)   mContext.getSystemService(Context.WIFI_SERVICE);
     
              closeWifiAp(mWifiManager);
        }
     
        private String mSSID = ;
        private String mPasswd = ;
     
        public void startWifiAp(String   ssid, String passwd) {
            mSSID = ssid;
            mPasswd = passwd;
     
            if   (mWifiManager.isWifiEnabled()) {
                  mWifiManager.setWifiEnabled(false);
            }
     
            stratWifiAp();
     
            MyTimerCheck timerCheck = new   MyTimerCheck() {
     
                @Override
                public void   doTimerCheckWork() {
                    // TODO   Auto-generated method stub
     
                    if   (isWifiApEnabled(mWifiManager)) {
                        Log.i(TAG, Wifi   enabled success!);
                          this.exit();
                    } else {
                        Log.i(TAG, Wifi   enabled failed!);
                    }
                }
     
                @Override
                public void   doTimeOutWork() {
                    // TODO   Auto-generated method stub
                    this.exit();
                }
            };
            timerCheck.start(15,   1000);
     
        }
     
        public void stratWifiAp() {
            Method method1 = null;
            try {
                method1 =   mWifiManager.getClass().getMethod(setWifiApEnabled,
                          WifiConfiguration.class, boolean.class);
                WifiConfiguration   netConfig = new WifiConfiguration();
     
                netConfig.SSID =   mSSID;
                netConfig.preSharedKey =   mPasswd;
                netConfig.status =  WifiConfiguration.Status.ENABLED;
                  netConfig.allowedAuthAlgorithms
                          .set(WifiConfiguration.AuthAlgorithm.OPEN);
                  netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                  netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                  netConfig.allowedKeyManagement
                          .set(WifiConfiguration.KeyMgmt.WPA_PSK);
                  netConfig.allowedPairwiseCiphers
                          .set(WifiConfiguration.PairwiseCipher.CCMP);
                  netConfig.allowedPairwiseCiphers
                          .set(WifiConfiguration.PairwiseCipher.TKIP);
                  netConfig.allowedGroupCiphers
                          .set(WifiConfiguration.GroupCipher.CCMP);
                  netConfig.allowedGroupCiphers
                          .set(WifiConfiguration.GroupCipher.TKIP);
     
                  //6.0以上手机需要设置权限WRITE_SETTINGS 动态返回
                  method1.invoke(mWifiManager, netConfig, true);
     
            } catch   (IllegalArgumentException e) {
                  e.printStackTrace();
            } catch   (IllegalAccessException e) {
                  e.printStackTrace();
            } catch   (InvocationTargetException e) {
                Log.i(Show,   e.toString());
                  e.printStackTrace();
            } catch (SecurityException e)   {
                  e.printStackTrace();
            } catch   (NoSuchMethodException e) {
                  e.printStackTrace();
            }
        }
     
        private static void   closeWifiAp(WifiManager wifiManager) {
            if   (isWifiApEnabled(wifiManager)) {
                try {
                    Method method =   wifiManager.getClass().getMethod(getWifiApConfiguration);
                      method.setAccessible(true);
     
                    WifiConfiguration   config = (WifiConfiguration) method.invoke(wifiManager);
     
                    Method method2 =   wifiManager.getClass().getMethod(setWifiApEnabled, WifiConfiguration.class, boolean.class);
                      method2.invoke(wifiManager, config, false);
                } catch   (NoSuchMethodException e) {
                    // TODO   Auto-generated catch block
                      e.printStackTrace();
                } catch   (IllegalArgumentException e) {
                    // TODO   Auto-generated catch block
                      e.printStackTrace();
                } catch   (IllegalAccessException e) {
                    // TODO   Auto-generated catch block
       &nbs    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程