Android Wifi搜索

 

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

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

   

  <!-- 配置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状态信息:

   

<?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>

 

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

 

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的打开和关闭的简单功能就已经实现了,希望有朋友们有帮助,有什么问题的话还请留言吧!!

 

 

 

posted @ 2014-02-18 22:40  筱筱心意  阅读(624)  评论(0)    收藏  举报