Android Wifi自动打开并连接

论坛 期权论坛 期权     
选择匿名的用户   2021-6-2 17:49   6386   0

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

转自:http://blog.csdn.net/yangwen123/article/details/9996359

版权声明:本文为博主原创文章,未经博主允许不得转载。

WIFI自动打开并连接到指定的热点:

[java] view plain copy

  1. do {
  2. try {
  3. //连接到指定的wifi热点
  4. mAdmin.connectWifi(SSID, PWD, WifiCipherType.WIFICIPHER_WPA);
  5. Thread.sleep(20 * 1000);
  6. } catch (InterruptedException e) {
  7. // TODO Auto-generated catch block
  8. Log.i(TAG, "connect wifi failed. please open wifi !");
  9. break;
  10. }
  11. } while (!mAdmin.isWifiConnect()); //判断wifi是否连接成功

连接指定wifi热点

[java] view plain copy

  1. public void connectWifi(String SSID, String Password, WifiCipherType Type) {
  2. //打开wifi
  3. if (!this.openWifi()) {
  4. return;
  5. }
  6. //等到wifi状态变成WIFI_STATE_ENABLED的时候才能执行下面的语句
  7. while (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
  8. try {
  9. // 为了避免程序一直while循环,让它睡个100毫秒在检测……
  10. Thread.currentThread();
  11. Thread.sleep(100);
  12. } catch (InterruptedException ie) {
  13. }
  14. }
  15. //判断是否已配置过当前热点
  16. WifiConfiguration config = IsConfig(SSID);
  17. if (config == null) {
  18. //创建一个当前连接的wifi热点
  19. config = CreateWifiInfo(SSID, Password, Type);
  20. }else {
  21. mWifiManager.removeNetwork(config.networkId);
  22. }
  23. WifiManager.Channel mChannel = mWifiManager.initialize(mContext, mContext.getMainLooper(), null);
  24. mWifiManager.connect(mChannel, config, null);
  25. }

判断是否已经配置过当前wifi热点

[java] } else {

  • return null;
  • }
  • return config;
  • }
  • 打开或关闭wifi连接

    [java] view plain copy

    1. // 打开WIFI
    2. public boolean openWifi() {
    3. boolean bRet = true;
    4. if (!mWifiManager.isWifiEnabled()) {
    5. bRet = mWifiManager.setWifiEnabled(true);
    6. }
    7. return bRet;
    8. }
    9. // 关闭WIFI
    10. public void closeWifi() {
    11. if (mWifiManager.isWifiEnabled()) {
    12. mWifiManager.setWifiEnabled(false);
    13. }
    14. }

    判断wifi是否成功连接

    [java] view plain copy

    1. public boolean isWifiConnect() {
    2. ConnectivityManager mConnectivityManager = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    3. NetworkInfo mWifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    4. return mWifi.isConnected();
    5. }

    分享到 :
    0 人收藏
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    积分:3875789
    帖子:775174
    精华:0
    期权论坛 期权论坛
    发布
    内容

    下载期权论坛手机APP