Android之Wifi学习(2)------连接Wifi

之前有一篇文章已经简单的讲过Wifi的基本知识,请见Android之Wifi学习(1)本文主要在此基础上,进一步完善程序功能,主要功能有打开无线网卡、关闭无线网卡、检查网卡状态、扫描网络、扫描结果、连接Wifi、断开Wifi、Wifi连接状态。
运行效果图如下:


其中连接Wifi是比较让我头疼的。需要在程序中进行连接,这会有两种情况。第一,Wifi没有密码,可以直接连接;第二,Wifi有密码,在程序中给出密码,然后连接。第一种我查阅相关资料好像确实是可以实现的,第二种我没找到,我自己也不知道该怎么去搞。最后想出一个办法,直接让程序跳到系统设置的Wifi的页面,然后让人手动去设置。观察了一下Android版的QQ,也确实是这么做的。不信你瞧:

点击设置网络后跳转到系统设置页面:

所以此处设置网络我也可以这么做,不过还是有点不爽,可能自己对Wifi这块还不是很熟悉,我会继续查阅相关API文档,到时候再跟大家分享,好了,下面贴一下源代码:
主页面:

  1. package org.sunchao;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9. import android.widget.ScrollView;  
  10. import android.widget.TextView;  
  11.   
  12. public class Main extends Activity implements OnClickListener {  
  13.     // 右侧滚动条按钮   
  14.     private ScrollView sView;  
  15.     private Button openNetCard;  
  16.     private Button closeNetCard;  
  17.     private Button checkNetCardState;  
  18.     private Button scan;  
  19.     private Button getScanResult;  
  20.     private Button connect;  
  21.     private Button disconnect;  
  22.     private Button checkNetWorkState;  
  23.     private TextView scanResult;  
  24.   
  25.     private String mScanResult;  
  26.     private WifiAdmin mWifiAdmin;  
  27.   
  28.     /** Called when the activity is first created. */  
  29.     @Override  
  30.     public void onCreate(Bundle savedInstanceState) {  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.main);  
  33.         mWifiAdmin = new WifiAdmin(Main.this);  
  34.         init();  
  35.     }  
  36.   
  37.     /** 
  38.      * 按钮等控件的初始化 
  39.      */  
  40.     public void init() {  
  41.         sView = (ScrollView) findViewById(R.id.mScrollView);  
  42.         openNetCard = (Button) findViewById(R.id.openNetCard);  
  43.         closeNetCard = (Button) findViewById(R.id.closeNetCard);  
  44.         checkNetCardState = (Button) findViewById(R.id.checkNetCardState);  
  45.         scan = (Button) findViewById(R.id.scan);  
  46.         getScanResult = (Button) findViewById(R.id.getScanResult);  
  47.         scanResult = (TextView) findViewById(R.id.scanResult);  
  48.         connect = (Button) findViewById(R.id.connect);  
  49.         disconnect = (Button) findViewById(R.id.disconnect);  
  50.         checkNetWorkState = (Button) findViewById(R.id.checkNetWorkState);  
  51.   
  52.         openNetCard.setOnClickListener(Main.this);  
  53.         closeNetCard.setOnClickListener(Main.this);  
  54.         checkNetCardState.setOnClickListener(Main.this);  
  55.         scan.setOnClickListener(Main.this);  
  56.         getScanResult.setOnClickListener(Main.this);  
  57.         connect.setOnClickListener(Main.this);  
  58.         disconnect.setOnClickListener(Main.this);  
  59.         checkNetWorkState.setOnClickListener(Main.this);  
  60.     }  
  61.   
  62.     /** 
  63.      * WIFI_STATE_DISABLING 0 WIFI_STATE_DISABLED 1 WIFI_STATE_ENABLING 2 
  64.      * WIFI_STATE_ENABLED 3 
  65.      */  
  66.     public void openNetCard() {  
  67.         mWifiAdmin.openNetCard();  
  68.     }  
  69.   
  70.     public void closeNetCard() {  
  71.         mWifiAdmin.closeNetCard();  
  72.     }  
  73.   
  74.     public void checkNetCardState() {  
  75.         mWifiAdmin.checkNetCardState();  
  76.     }  
  77.   
  78.     public void scan() {  
  79.         mWifiAdmin.scan();  
  80.     }  
  81.   
  82.     public</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值