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

  • 相关阅读:
    Js 之xterm.js终端插件
    Mysql 之获取和修改注释
    Js 之codemirror文本编辑器
    Apicloud 之视频播放项目实战
    PHP 之极验验证插件
    PHP 之CI框架+GatewayWorker+AmazeUI仿微信聊天网页版
    PHP 之Html标签转义与反转义
    关于Vue中props的详解
    css特效之旋转音乐播放器
    微信小程序获取地理位置
  • 原文地址:https://www.cnblogs.com/boyuanmeng/p/3555032.html
Copyright © 2011-2022 走看看