1、概念

2、wifi网卡的状态

WIFI_STATE_DISABLED:wifi网卡不可用(1)

WIFI_STATE_DISABLING:wifi正在关闭(0)

WIFI_STATE_ENABLED:wifi网卡可用(3)

WIFI_STATE_ENABLING:wifi网卡正在打开(2)

WIFI_STATE_UNKNOWN:未知网卡状态

3、wifi的权限

(部分与网络有关的权限,具体的其他权限可以查阅帮助文档)

4、改变wifi网卡的状态

对wifi网卡的的操作需要对WifiManager对象进行,方法如下:

WifiManager  wifiManager=(WifiManager)Context.getSystemService(Service.WIFI_SERVICE);

打开网卡:wifiManager.setWifiEnabled(true);

关闭wifi网卡:wifiManager.setWifiEnabled(false);

获取当前网卡状态:wifimanager.getWifiState();

现实现一个访问wifi的程序,需要有一台安卓系统的手机做测试,具体内容是启动、停止、查看wifi网络。

WifiActivity.java

 1 package zzl.wifi;
 2
 3 import android.app.Activity;
 4 import android.content.Context;
 5 import android.net.wifi.WifiManager;
 6 import android.os.Bundle;
 7 import android.view.Menu;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.Toast;
12
13 public class WifiActivity extends Activity {
14
15     private Button start=null;
16     private Button stop=null;
17     private Button check=null;
18     private WifiManager wifiManager=null;
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.main);
23
24         start=(Button)findViewById(R.id.start);
25         stop=(Button)findViewById(R.id.stop);
26         check=(Button)findViewById(R.id.check);
27
28         start.setOnClickListener(new StartWifiListener());
29         stop.setOnClickListener(new StopWifiListener());
30         check.setOnClickListener(new CheckWifiListener());
31     }
32
33     class StartWifiListener implements OnClickListener{
34
35         @Override
36         public void onClick(View v) {
37             // TODO Auto-generated method stub
38             //WifiActivity继承自Activity,
39             //Activity本身又是Context的子类(所以Context的所有函数Activity都可以用)
40             wifiManager=(WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
41             wifiManager.setWifiEnabled(true);
42             System.out.println("wiif state--->"+wifiManager.getWifiState());
43             Toast.makeText(WifiActivity.this, "当前wifi状态:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
44         }
45     }
46     class StopWifiListener implements OnClickListener{
47
48         @Override
49         public void onClick(View v) {
50             // TODO Auto-generated method stub
51              wifiManager=(WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
52                 wifiManager.setWifiEnabled(false);
53                 System.out.println("wiif state--->"+wifiManager.getWifiState());
54                 Toast.makeText(WifiActivity.this, "当前wifi状态:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
55         }
56     }
57     class CheckWifiListener implements OnClickListener{
58
59         @Override
60         public void onClick(View v) {
61             // TODO Auto-generated method stub
62              wifiManager=(WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
63              System.out.println("wiif state--->"+wifiManager.getWifiState());
64              Toast.makeText(WifiActivity.this, "当前wifi状态:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
65         }
66     }
67     @Override
68     public boolean onCreateOptionsMenu(Menu menu) {
69         // Inflate the menu; this adds items to the action bar if it is present.
70         getMenuInflater().inflate(R.menu.main, menu);
71         return true;
72     }
73
74 }

main.xml

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     tools:context=".WifiActivity" >
 7
 8     <Button
 9         android:layout_width="fill_parent"
10         android:layout_height="wrap_content"
11         android:id="@+id/start"
12         android:text="@string/start"/>
13     <Button
14         android:layout_width="fill_parent"
15         android:layout_height="wrap_content"
16         android:id="@+id/stop"
17         android:text="@string/stop"/>
18     <Button
19         android:layout_width="fill_parent"
20         android:layout_height="wrap_content"
21         android:id="@+id/check"
22         android:text="@string/check"/>
23
24 </LinearLayout>

部分结果:

总结:

(1、    在Manifest.xml中出现这样的  <uses-permission> tag appears after <application> tag  警告

解决方法是:把<uses-permission> 放到 <application> 前面

(2、要使wifi访问网络,需要在Manifest.xml中敲写这样的代码,否则可能会造成访问权限不足

1      <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
2      <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
3      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
4      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

(3、需要连接到手机做测试

转载于:https://www.cnblogs.com/daomul/archive/2013/03/04/2936052.html

Android 学习 笔记_09. WIFI网络操作相关推荐

  1. Android学习笔记---13_文件的操作模式.各个应用之间的文件权限

    2013-03-05 13_文件的操作模式 --------------------------------------- 1.注意在应用相同的情况下,不同的项目一定不要用相同的包名这样的话,会被视为 ...

  2. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  3. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  4. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  5. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  6. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  7. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  8. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  9. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

最新文章

  1. 2018年终总结之人工智能学习
  2. 用Docker创建Nexus
  3. logm--求矩阵的对数
  4. HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别
  5. linux fork脚本,在Shell脚本中调用另一个脚本的三种方式讲解
  6. 51nod 1292 字符串中的最大值V2(后缀自动机)
  7. C语言和设计模式(备忘录模式)
  8. json 转对象函数_JSON_QUERY()函数从JSON数据提取对象
  9. 还原python源码_python 的混淆后的代码可以还原么
  10. 开课吧课堂:什么是多线程编程?
  11. 百度云的云推送中的Native liberary not found 问题
  12. 计算机导论怎么不挂科,我们删除的数据,最后都去了哪里?
  13. canvas绘制飞线效果
  14. 计算机一级补考53分能过吗,我考了53分
  15. pbcms 文章新增 修改 实现自动百度推送
  16. 10-3 德扑,股票演绎法,练习量是个要命的问题
  17. STM32H7的CAN FD教程笔记
  18. Elasticsearch之路由
  19. 第15讲:Python列表对象的反转与排序
  20. 恋爱周年纪念日-送给女友的网页

热门文章

  1. ubuntu下载linux内核源码
  2. hiho 第1周 最长回文子串
  3. 利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
  4. 一刀两断划分子网例子
  5. 高效程序员的45个习惯の欲速则不达
  6. JQuery判断radio是否选中并获取选中值的示例代码
  7. UPNP解读2-含netbios,wins,DNS
  8. 【SAS NOTES】在一个data中生成多个数据集
  9. python 基础 信息量很大很好,适合复习
  10. Linux内存实际使用率