设为首页 收藏本站
查看: 1340|回复: 0

[经验分享] android WIFI检测与设置

[复制链接]

尚未签到

发表于 2015-10-1 00:40:32 | 显示全部楼层 |阅读模式
WIFI是无线通信协议,可以允许手机直接连接到无线网络。在现在3G资费还比较贵的情况下,WIFI对于手机来说是很重要的,我们可以很方便的下载软件,音乐等资源。Android手机必须要有WIFI网卡才能支持WIFI。Android应用程序有时候需要对WIFI网卡进行操作,从而操作WIFI网络。
      WIFI网卡有一些状态,由一系列的整形常量来表示。
常量名常量值网卡状态
WIFI_STATE_DISABLED         1            WIFI网卡不可用
WIFI_STATE_DISABLING               0WIFI正在关闭
WIFI_STATE_ENABLED3WIFI网卡可用
WIFI_STATE_ENABLING2WIFI网卡正在打开
WIFI_STATE_UNKNOWN4未知网卡状态
  在应用程序中操作WIFI网卡一定的权限。
      WIFI 的主要操作权限有四个:
              CHANGE_NETWORK_STATE :允许修改网络状态的权限。
              CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。
              ACCESS_NETWORK_STATE :允许访问网络状态的权限。
              ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。
在AndroidManifest.xml文件中添加权限。

  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>  
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
改变WIFI网卡的状态
      对WIFI网卡进行操作需要通过WifiManager对象来进行,获取该对象的方法如下:
      WifiManager wifiManger=(WifiManger)Context.getSystemService(Service.WIFI-SERVICE);
      打开WIFI网卡
      wifiManager.setWifiEnabled(true);
      关闭WIFI网卡
      wifiManager.setWifiEnabled(false);
      获取网卡当前的状态
      wifiManager.getWifiState();

  示例:新建一个一个Android应用程序,在main.xml中添加三个按钮,点击这三个按钮分别可以打开WIFI网卡,关闭WIFI网卡,检查网卡  的当前状态。需要说明的是由于Android模拟器不支持WIFI和蓝牙所以程序执行时返回的网卡状态都是WIFI_STATE_UNKNOWN:网卡未知的状态。此程序需要在真机上进行调试才会显示正确的运行结果。这里主要是为了说明程序如何编写。



[html] view plaincopyprint?

  • 1. <?xml version="1.0" encoding="utf-8"?>   
  • 2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  • 3.     android:orientation="vertical"   
  • 4.     android:layout_width="fill_parent"   
  • 5.     android:layout_height="fill_parent"   
  • 6.     >   
  • 7. <TextView      
  • 8.     android:layout_width="fill_parent"     
  • 9.     android:layout_height="wrap_content"     
  • 10.     android:text="@string/hello"   
  • 11.     />   
  • 12. <Button   
  • 13.     android:id="@+id/startButton"   
  • 14.     android:layout_width="300dp"   
  • 15.     android:layout_height="wrap_content"   
  • 16.     android:text="打开WIFI网卡"   
  • 17.     />   
  • 18. <Button   
  • 19.     android:id="@+id/stopButton"   
  • 20.     android:layout_width="300dp"   
  • 21.     android:layout_height="wrap_content"   
  • 22.     android:text="关闭WIFI网卡"   
  • 23.     />   
  • 24. <Button   
  • 25.     android:id="@+id/checkButton"   
  • 26.     android:layout_width="300dp"   
  • 27.     android:layout_height="wrap_content"   
  • 28.     android:text="检查WIFI网卡状态"   
  • 29.     />   
  • 30. </LinearLayout>   
   1. <?xml version="1.0" encoding="utf-8"?>  
2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3.     android:orientation="vertical"  
4.     android:layout_width="fill_parent"  
5.     android:layout_height="fill_parent"  
6.     >  
7. <TextView   
8.     android:layout_width="fill_parent"   
9.     android:layout_height="wrap_content"   
10.     android:text="@string/hello"  
11.     />  
12. <Button  
13.     android:id="@+id/startButton"  
14.     android:layout_width="300dp"  
15.     android:layout_height="wrap_content"  
16.     android:text="打开WIFI网卡"  
17.     />  
18. <Button  
19.     android:id="@+id/stopButton"  
20.     android:layout_width="300dp"  
21.     android:layout_height="wrap_content"  
22.     android:text="关闭WIFI网卡"  
23.     />  
24. <Button  
25.     android:id="@+id/checkButton"  
26.     android:layout_width="300dp"  
27.     android:layout_height="wrap_content"  
28.     android:text="检查WIFI网卡状态"  
29.     />  
30. </LinearLayout>  



[java] view plaincopyprint?

  • 1. package idea.org;   
  • 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.View;   
  • 8. import android.view.View.OnClickListener;   
  • 9. import android.widget.Button;   
  • 10. import android.widget.Toast;   
  • 11.     
  • 12. public class Android_Wifi extends Activity {   
  • 13.     private Button startButton=null;   
  • 14.     private Button stopButton=null;   
  • 15.     private Button checkButton=null;   
  • 16.     WifiManager wifiManager=null;   
  • 17.     /** Called when the activity is first created. */   
  • 18.     @Override   
  • 19.     public void onCreate(Bundle savedInstanceState) {   
  • 20.         super.onCreate(savedInstanceState);   
  • 21.         setContentView(R.layout.main);   
  • 22.         startButton=(Button)findViewById(R.id.startButton);   
  • 23.         stopButton=(Button)findViewById(R.id.stopButton);   
  • 24.         checkButton=(Button)findViewById(R.id.checkButton);   
  • 25.         startButton.setOnClickListener(new startButtonListener());   
  • 26.         stopButton.setOnClickListener(new stopButtonListener());   
  • 27.         checkButton.setOnClickListener(new checkButtonListener());   
  • 28.     }   
  • 29.     class startButtonListener implements OnClickListener   
  • 30.     {   
  • 31.     
  • 32.         /* (non-Javadoc)
  • 33.          * @see android.view.View.OnClickListener#onClick(android.view.View)
  • 34.          */   
  • 35.         @Override   
  • 36.         public void onClick(View v) {   
  • 37.             // TODO Auto-generated method stub   
  • 38.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);   
  • 39.             wifiManager.setWifiEnabled(true);   
  • 40.             System.out.println("wifi state --->"+wifiManager.getWifiState());   
  • 41.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();   
  • 42.         }   
  • 43.            
  • 44.     }   
  • 45.     class stopButtonListener implements OnClickListener   
  • 46.     {   
  • 47.     
  • 48.         /* (non-Javadoc)
  • 49.          * @see android.view.View.OnClickListener#onClick(android.view.View)
  • 50.          */   
  • 51.         @Override   
  • 52.         public void onClick(View v) {   
  • 53.             // TODO Auto-generated method stub   
  • 54.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);   
  • 55.             wifiManager.setWifiEnabled(false);   
  • 56.             System.out.println("wifi state --->"+wifiManager.getWifiState());   
  • 57.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();   
  • 58.         }   
  • 59.            
  • 60.     }   
  • 61.     class checkButtonListener implements OnClickListener   
  • 62.     {   
  • 63.     
  • 64.         /* (non-Javadoc)
  • 65.          * @see android.view.View.OnClickListener#onClick(android.view.View)
  • 66.          */   
  • 67.         @Override   
  • 68.         public void onClick(View v) {   
  • 69.             // TODO Auto-generated method stub   
  • 70.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);              
  • 71.             System.out.println("wifi state --->"+wifiManager.getWifiState());   
  • 72.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();   
  • 73.         }           
  • 74.     }   
  • 75. }   
   1. package idea.org;  
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.View;  
8. import android.view.View.OnClickListener;  
9. import android.widget.Button;  
10. import android.widget.Toast;  
11.   
12. public class Android_Wifi extends Activity {  
13.     private Button startButton=null;  
14.     private Button stopButton=null;  
15.     private Button checkButton=null;  
16.     WifiManager wifiManager=null;  
17.     /** Called when the activity is first created. */  
18.     @Override  
19.     public void onCreate(Bundle savedInstanceState) {  
20.         super.onCreate(savedInstanceState);  
21.         setContentView(R.layout.main);  
22.         startButton=(Button)findViewById(R.id.startButton);  
23.         stopButton=(Button)findViewById(R.id.stopButton);  
24.         checkButton=(Button)findViewById(R.id.checkButton);  
25.         startButton.setOnClickListener(new startButtonListener());  
26.         stopButton.setOnClickListener(new stopButtonListener());  
27.         checkButton.setOnClickListener(new checkButtonListener());  
28.     }  
29.     class startButtonListener implements OnClickListener  
30.     {  
31.   
32.         /* (non-Javadoc)
33.          * @see android.view.View.OnClickListener#onClick(android.view.View)
34.          */  
35.         @Override  
36.         public void onClick(View v) {  
37.             // TODO Auto-generated method stub  
38.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);  
39.             wifiManager.setWifiEnabled(true);  
40.             System.out.println("wifi state --->"+wifiManager.getWifiState());  
41.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();  
42.         }  
43.           
44.     }  
45.     class stopButtonListener implements OnClickListener  
46.     {  
47.   
48.         /* (non-Javadoc)
49.          * @see android.view.View.OnClickListener#onClick(android.view.View)
50.          */  
51.         @Override  
52.         public void onClick(View v) {  
53.             // TODO Auto-generated method stub  
54.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);  
55.             wifiManager.setWifiEnabled(false);  
56.             System.out.println("wifi state --->"+wifiManager.getWifiState());  
57.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();  
58.         }  
59.           
60.     }  
61.     class checkButtonListener implements OnClickListener  
62.     {  
63.   
64.         /* (non-Javadoc)
65.          * @see android.view.View.OnClickListener#onClick(android.view.View)
66.          */  
67.         @Override  
68.         public void onClick(View v) {  
69.             // TODO Auto-generated method stub  
70.             wifiManager=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE);            
71.             System.out.println("wifi state --->"+wifiManager.getWifiState());  
72.             Toast.makeText(Android_Wifi.this, "当前网卡状态为:"+wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();  
73.         }         
74.     }  
75. }  



[html] view plaincopyprint?

  • 1. <?xml version="1.0" encoding="utf-8"?>   
  • 2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
  • 3.       package="idea.org"   
  • 4.       android:versionCode="1"   
  • 5.       android:versionName="1.0">   
  • 6.     <uses-sdk android:minSdkVersion="11" />   
  • 7.     
  • 8.     <application android:icon="@drawable/icon" android:label="@string/app_name">   
  • 9.         <activity android:name=".Android_Wifi"   
  • 10.                   android:label="@string/app_name">   
  • 11.             <intent-filter>   
  • 12.                 <action android:name="android.intent.action.MAIN" />   
  • 13.                 <category android:name="android.intent.category.LAUNCHER" />   
  • 14.             </intent-filter>   
  • 15.         </activity>   
  • 16.     
  • 17.     </application>   
  • 18.     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>   
  • 19.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>   
  • 20.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>   
  • 21.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>   
  • 22. </manifest>   
   1. <?xml version="1.0" encoding="utf-8"?>  
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
3.       package="idea.org"  
4.       android:versionCode="1"  
5.       android:versionName="1.0">  
6.     <uses-sdk android:minSdkVersion="11" />  
7.   
8.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
9.         <activity android:name=".Android_Wifi"  
10.                   android:label="@string/app_name">  
11.             <intent-filter>  
12.                 <action android:name="android.intent.action.MAIN" />  
13.                 <category android:name="android.intent.category.LAUNCHER" />  
14.             </intent-filter>  
15.         </activity>  
16.   
17.     </application>  
18.     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>  
19.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>  
20.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
21.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
22. </manifest>    
依次点击&#8220;打开WIFI网卡&#8221;,&#8220;关闭WIFI网卡&#8221;,&#8220;检查WIFI网卡状态&#8221;三个Button按钮,控制台输出一下内容。

  转自:http://blog.iyunv.com/l_serein/article/details/6877598

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-121050-1-1.html 上篇帖子: WiFi密码破解详细图文教程 下篇帖子: LynxFly科研小四轴横空出世,开源,F4,WIFI --(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表