Android之Wifi学习教程.docx

上传人:b****3 文档编号:4633246 上传时间:2023-05-07 格式:DOCX 页数:36 大小:180.10KB
下载 相关 举报
Android之Wifi学习教程.docx_第1页
第1页 / 共36页
Android之Wifi学习教程.docx_第2页
第2页 / 共36页
Android之Wifi学习教程.docx_第3页
第3页 / 共36页
Android之Wifi学习教程.docx_第4页
第4页 / 共36页
Android之Wifi学习教程.docx_第5页
第5页 / 共36页
Android之Wifi学习教程.docx_第6页
第6页 / 共36页
Android之Wifi学习教程.docx_第7页
第7页 / 共36页
Android之Wifi学习教程.docx_第8页
第8页 / 共36页
Android之Wifi学习教程.docx_第9页
第9页 / 共36页
Android之Wifi学习教程.docx_第10页
第10页 / 共36页
Android之Wifi学习教程.docx_第11页
第11页 / 共36页
Android之Wifi学习教程.docx_第12页
第12页 / 共36页
Android之Wifi学习教程.docx_第13页
第13页 / 共36页
Android之Wifi学习教程.docx_第14页
第14页 / 共36页
Android之Wifi学习教程.docx_第15页
第15页 / 共36页
Android之Wifi学习教程.docx_第16页
第16页 / 共36页
Android之Wifi学习教程.docx_第17页
第17页 / 共36页
Android之Wifi学习教程.docx_第18页
第18页 / 共36页
Android之Wifi学习教程.docx_第19页
第19页 / 共36页
Android之Wifi学习教程.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android之Wifi学习教程.docx

《Android之Wifi学习教程.docx》由会员分享,可在线阅读,更多相关《Android之Wifi学习教程.docx(36页珍藏版)》请在冰点文库上搜索。

Android之Wifi学习教程.docx

Android之Wifi学习教程

在Android中对Wifi操作,android本身提供了一些有用的包,在.wifi包下面。

简单介绍一下:

大致可以分为四个主要的类ScanResult,wifiConfiguration,WifiInfo,WifiManager

(1)ScanResult,主要是通过wifi硬件的扫描来获取一些周边的wifi热点的信息。

(2)wifiConfiguration在我们连通一个wifi接入点的时候,需要获取到的一些信息。

大家可以跟我们有线的设备进行对比一下。

(3)WifiInfo在我们的wifi已经连通了以后,可以通过这个类获得一些已经连通的wifi连接的信息获取当前链接的信息,这里信息就比较简单了,这里简单介绍一下这里的方法:

    getBSSID()获取BSSID

    getDetailedStateOf()获取客户端的连通性

    getHiddenSSID()获得SSID是否被隐藏

    getIpAddress()获取IP地址

    getLinkSpeed()获得连接的速度

    getMacAddress()获得Mac地址

    getRssi()获得802.11n网络的信号

    getSSID()获得SSID

    getSupplicanState()返回具体客户端状态的信息

(4)wifiManager这个不用说,就是用来管理我们的wifi连接,这里已经定义好了一些类,可以供我们使用。

这里来说相对复杂,里面的内容比较多,但是通过字面意思,我们还是可以获得很多相关的信息。

这个类里面预先定义了许多常量,我们可以直接使用,不用再次创建。

介绍完了,开始写一个Demo吧。

程序已启动效果图如下:

看代码,其中有注释,我就不多说了。

布局文件代码:

1.

2.

android=" 

3.  android:

id="@+id/mScrollView"android:

layout_width="fill_parent"  

4.  android:

layout_height="wrap_content"android:

scrollbars="vertical">

5.

android=" 

6.  android:

orientation="vertical"

7.  android:

layout_width="fill_parent"

8.  android:

layout_height="fill_parent"

9.  >

10.

11.  android:

id="@+id/allNetWork"

12.  android:

layout_width="fill_parent"

13.  android:

layout_height="wrap_content" 

14.  android:

text="当前没有扫描到Wifi网络"

15.  />

16.

17.  android:

id="@+id/scan"

18.  android:

layout_width="wrap_content" 

19.  android:

layout_height="wrap_content" 

20.  android:

text="扫描网络"

21.  />

22.

23.  android:

id="@+id/start"

24.  android:

layout_width="wrap_content" 

25.  android:

layout_height="wrap_content" 

26.  android:

text="打开Wifi"

27.  />

28.

29.  android:

id="@+id/stop"

30.  android:

layout_width="wrap_content" 

31.  android:

layout_height="wrap_content" 

32.  android:

text="关闭Wifi"

33.  />

34.

35.  android:

id="@+id/check"

36.  android:

layout_width="wrap_content" 

37.  android:

layout_height="wrap_content" 

38.  android:

text="Wifi状态"

39.  />

40.

41.

42.

43.

44.

45.

46.

47.

复制代码

上面布局文件中的ScrollView用来在Activity中显示右侧滚动条,如果数据多的话,则可以往下滑动继续显示未显示完的数据。

主页面代码:

1.packageorg.sunchao;

2.

3.importjava.util.List;

4.

5.importandroid.app.Activity;

6.import.wifi.ScanResult;

7.importandroid.os.Bundle;

8.importandroid.view.View;

9.importandroid.view.View.OnClickListener;

10.importandroid.widget.Button;

11.importandroid.widget.ScrollView;

12.importandroid.widget.TextView;

13.importandroid.widget.Toast;

14.

15.publicclassMainextendsActivityimplementsOnClickListener{

16.      //右侧滚动条按钮

17.      privateScrollViewsView; 

18.      privateTextViewallNetWork;

19.      privateButtonscan;

20.      privateButtonstart;

21.      privateButtonstop;

22.      privateButtoncheck;

23.      privateWifiAdminmWifiAdmin;

24.      //扫描结果列表

25.      privateListlist;

26.      privateScanResultmScanResult;

27.      privateStringBuffermStringBuffer=newStringBuffer();

28.

29.      /**Calledwhentheactivityisfirstcreated.*/

30.      @Override

31.      publicvoidonCreate(BundlesavedInstanceState){

32.          super.onCreate(savedInstanceState);

33.          setContentView(R.layout.main);

34.          mWifiAdmin=newWifiAdmin(Main.this);

35.          init();

36.      }

37.

38.      //按钮的初始化

39.      publicvoidinit(){

40.          sView=(ScrollView)findViewById(R.id.mScrollView);

41.          allNetWork=(TextView)findViewById(R.id.allNetWork);

42.          scan=(Button)findViewById(R.id.scan);

43.          start=(Button)findViewById(R.id.start);

44.          stop=(Button)findViewById(R.id.stop);

45.          check=(Button)findViewById(R.id.check);

46.          scan.setOnClickListener(Main.this);

47.          start.setOnClickListener(Main.this);

48.          stop.setOnClickListener(Main.this);

49.          check.setOnClickListener(Main.this);

50.      }

51.

52.      //WIFI_STATE_DISABLING0

53.      //WIFI_STATE_DISABLED1

54.      //WIFI_STATE_ENABLING2

55.      //WIFI_STATE_ENABLED3

56.      publicvoidstart(){

57.          mWifiAdmin.openWifi();

58.          Toast.makeText(Main.this,"当前Wifi网卡状态为"+mWifiAdmin.checkState(),

59.                      Toast.LENGTH_SHORT).show();

60.      }

61.

62.      publicvoidstop(){

63.          mWifiAdmin.closeWifi();

64.          Toast.makeText(Main.this,"当前Wifi网卡状态为"+mWifiAdmin.checkState(),

65.                      Toast.LENGTH_SHORT).show();

66.      }

67.

68.      publicvoidcheck(){

69.          Toast.makeText(Main.this,"当前Wifi网卡状态为"+mWifiAdmin.checkState(),

70.                      Toast.LENGTH_SHORT).show();

71.      }

72.

73.      publicvoidgetAllNetWorkList(){

74.          //每次点击扫描之前清空上一次的扫描结果

75.          if(mStringBuffer!

=null){

76.                mStringBuffer=newStringBuffer();

77.          }

78.

79.          //开始扫描网络

80.          mWifiAdmin.startScan();

81.          list=mWifiAdmin.getWifiList();

82.

83.          if(list!

=null){

84.                for(inti=0;i

85.                      mScanResult=list.get(i);

86.                      //得到网络的SSID:

thenetworkname

87.                      mStringBuffer=mStringBuffer

88.                          .append(mScanResult.SSID).append("      ")

89.                          .append(mScanResult.BSSID).append("      ")

90.                          .append(mScanResult.capabilities).append("      ")

91.                          .append(mScanResult.frequency).append("      ")

92.                          .append(mScanResult.level).append("      ")

93.                          .append("");

94.                }

95.                allNetWork.setText("扫描到的所有Wifi网络:

"+mStringBuffer.toString());

96.          }

97.      }

98.

99.      @Override

100.      publicvoidonClick(Viewv){

101.          switch(v.getId()){

102.          caseR.id.scan:

103.                getAllNetWorkList();

104.                break;

105.          caseR.id.start:

106.                start();

107.                break;

108.          caseR.id.stop:

109.                stop();

110.                break;

111.          caseR.id.check:

112.                check();

113.                break;

114.          default:

115.                break;

116.          }

117.      }

118.}

119.

复制代码

上面用到了一个WifiAdmin类,这是我自己写的一个类,用于对Wifi的操作进行一次封装,里面的方法很多,我们本次Demo只用到了其中几种,但我还是先全部放上去吧,以后会用到的。

WifiAdmin工具类代码:

1.packageorg.sunchao;

2.

3.importjava.util.List;

4.

5.importandroid.content.Context;

6.import.wifi.ScanResult;

7.import.wifi.WifiConfiguration;

8.import.wifi.WifiInfo;

9.import.wifi.WifiManager;

10.import.wifi.WifiManager.WifiLock;

11.

12.publicclassWifiAdmin{

13.      //定义WifiManager对象

14.      privateWifiManagermWifiManager;

15.      //定义WifiInfo对象

16.      privateWifiInfomWifiInfo;

17.      //扫描出的网络连接列表

18.      privateListmWifiList;

19.      //网络连接列表

20.      privateListmWifiConfiguration;

21.      //定义一个WifiLock

22.      WifiLockmWifiLock;

23.

24.      //构造器

25.      publicWifiAdmin(Contextcontext){

26.          //取得WifiManager对象

27.          mWifiManager=(WifiManager)context

28.                      .getSystemService(Context.WIFI_SERVICE);

29.          //取得WifiInfo对象

30.          mWifiInfo=mWifiManager.getConnectionInfo();

31.      }

32.

33.      //打开WIFI

34.      publicvoidopenWifi(){

35.          if(!

mWifiManager.isWifiEnabled()){

36.                mWifiManager.setWifiEnabled(true);

37.          }

38.      }

39.

40.      //关闭WIFI

41.      publicvoidcloseWifi(){

42.          if(mWifiManager.isWifiEnabled()){

43.                mWifiManager.setWifiEnabled(false);

44.          }

45.      }

46.

47.      //检查当前WIFI状态

48.      publicintcheckState(){

49.          returnmWifiManager.getWifiState();

50.      }

51.

52.      //锁定WifiLock

53.      publicvoidacquireWifiLock(){

54.          mWifiLock.acquire();

55.      }

56.

57.      //解锁WifiLock

58.      publicvoidreleaseWifiLock(){

59.          //判断时候锁定

60.          if(mWifiLock.isHeld()){

61.                mWifiLock.acquire();

62.          }

63.      }

64.

65.      //创建一个WifiLock

66.      publicvoidcreatWifiLock(){

67.          mWifiLock=mWifiManager.createWifiLock("Test");

68.      }

69.

70.      //得到配置好的网络

71.      publicListgetConfiguration(){

72.          returnmWifiConfiguration;

73.      }

74.

75.      //指定配置好的网络进行连接

76.      publicvoidconnectConfiguration(intindex){

77.          //索引大于配置好的网络索引返回

78.          if(index>mWifiConfiguration.size()){

79.           

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2