Android Wifi搜索

 

       今天看了一下wifi的文档,写了一个简易的wifi的打开和搜索的功能。

      那么,启用wifi是必须用真机调试的,权限也是必须的:

   

1
2
3
4
5
6
7
8
9
10
<!-- 配置Wifi訪問權限 -->
   
  <uses-permission 
      android:name="android.permission.ACCESS_WIFI_STATE"
      />
   
  <!-- 配置改變Wifi狀態的權限 -->
   
 
  <uses-permission  android:name="android.permission.CHANGE_WIFI_STATE"/>

 

  然后呢布局文件里面就只有4个按钮:打开wifi,关闭wifi,wifi状态,wifi状态信息:

   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <Button
        android:id="@+id/openWifi"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onAction"
        android:text="打开Wifi" />
 
    <Button
        android:id="@+id/closedWifi"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onAction"
        android:text="关闭Wifi" />
 
     
     
        <Button
        android:id="@+id/wifiState"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onAction"
        android:text="Wifi状态" />
         
         
          <Button
        android:id="@+id/wifiStateInfo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onAction"
        android:text="Wifi状态信息" />
     
</LinearLayout>

 

      代码里面的注释已经很详细了,我在这里就不过多的解释了,看代码你懂的:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package cn.zuxia.android.app;
 
import java.util.List;
 
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
public class TestWifiActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        // 获取wifiManager对象
        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    }
 
    // 定义操作Wifi的管理对象WifiManager
    private WifiManager mWifiManager;
 
    public void onAction(View v) {
 
        int id = v.getId();
        // wifi的状态值
        int state = mWifiManager.getWifiState();
 
        switch (id) {
 
        case R.id.openWifi:
            // 如果wifi打开就关闭
            if (WifiManager.WIFI_STATE_DISABLED == state) {
 
                Toast.makeText(this, "正在打開Wifi.....", Toast.LENGTH_SHORT)
                        .show();
                mWifiManager.setWifiEnabled(true);// 將值設置為true表示打開wifi
            } else {
 
                Toast.makeText(this, "Wifi已經打開", Toast.LENGTH_SHORT).show();
            }
 
            break;
        case R.id.closedWifi:
 
            // 如果wifi关闭就打开
            if (WifiManager.WIFI_STATE_ENABLED == state) {
 
                Toast.makeText(this, "正在關閉Wifi.......", Toast.LENGTH_SHORT)
                        .show();
                mWifiManager.setWifiEnabled(false);// 將值設置為false表示關閉wifi
            } else {
 
                Toast.makeText(this, "Wifi已經關閉", Toast.LENGTH_SHORT).show();
            }
            break;
        case R.id.wifiState:
 
            Toast.makeText(this, "Wifi狀態為:" + state, Toast.LENGTH_SHORT).show();
 
            break;
 
        case R.id.wifiStateInfo:
 
            // 得到WifiInfo對象
 
            // WifiInfo wifiInfo=mWifiManager.getConnectionInfo();
            //
            // if(null!=wifiInfo){
            //
            // System.out.println(wifiInfo.getBSSID()+",,"+wifiInfo.getMacAddress()+",,,"+wifiInfo.getIpAddress());
            // }else{
            // Toast.makeText(this, "返回的WifiInfo對象為空",
            // Toast.LENGTH_SHORT).show();
            // }
 
            // 存储搜索到的wifi
            List<WifiConfiguration> configurations = mWifiManager
                    .getConfiguredNetworks();
 
            System.out.println(configurations.size());
            for (WifiConfiguration wifiConfiguration : configurations) {
 
                System.out.println(wifiConfiguration.wepKeys + "@@@"
                        + wifiConfiguration.status);
 
            }
 
            break;
        }
 
    }
 
}

 

      那么这个简单的wifi的打开和关闭的简单功能就已经实现了,希望有朋友们有帮助,有什么问题的话还请留言吧!!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。