`

WifiManager打开关闭Wifi以及搜索Wifi

 
阅读更多

Wifi的五种状态

 

		WifiManager.WIFI_STATE_ENABLED//已打开
		WifiManager.WIFI_STATE_DISABLING//正在关闭
		WifiManager.WIFI_STATE_ENABLING//正在打开
		WifiManager.WIFI_STATE_DISABLED//已关闭
		WifiManager.WIFI_STATE_UNKNOWN//未知
 

一、打开关闭Wifi

 添加权限

 

<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>
	<uses-permission
		android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission
		android:name="android.permission.WAKE_LOCK"></uses-permission>
 

 

private ToggleButton toggleButton1;
	private WifiManager mWiFiManager01;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.wifi);
		
		toggleButton1 = (ToggleButton)findViewById(R.id.toggleButton1);
		/* 以getSystemService取得WIFI_SERVICE */
	    mWiFiManager01 = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
	    
	    if(mWiFiManager01.getWifiState() == WifiManager.WIFI_STATE_ENABLED){
	    	toggleButton1.setChecked(true);
	    	toggleButton1.setEnabled(true);
	    }
	    else if(mWiFiManager01.getWifiState() == WifiManager.WIFI_STATE_DISABLED){
	    	toggleButton1.setChecked(false);
	    	toggleButton1.setEnabled(true);
	    }
	    else{
	    	toggleButton1.setChecked(false);
	    	toggleButton1.setEnabled(false);
	    }
	    
	    toggleButton1.setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener(){

			public void onCheckedChanged(CompoundButton buttonView,
					boolean isChecked) {
				if(isChecked == true){
					mWiFiManager01.setWifiEnabled(true);
				}
				else{
					mWiFiManager01.setWifiEnabled(false);
				}
			}
	    	
	    });
	}
 



 

 

二、搜索wifi

 

private Button button1;
	private WifiManager mWiFiManager01;

	private SimpleAdapter listItemAdapter; // ListView的适配器
	private ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表
	private ListView myList; // ListView控件

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.wifi_connect);

		button1 = (Button) findViewById(R.id.button1);

		mWiFiManager01 = (WifiManager) this
				.getSystemService(Context.WIFI_SERVICE);
		mWiFiManager01.startScan();

		listItem = new ArrayList<HashMap<String, Object>>();
		listItemAdapter = new SimpleAdapter(this, listItem, R.layout.list_item,
				new String[] { "title", "text" }, new int[] { R.id.ItemTitle,
						R.id.ItemText });
		myList = (ListView) findViewById(R.id.list);
		myList.setAdapter(listItemAdapter);

		button1.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				List<WifiConfiguration> wifiConf = mWiFiManager01
						.getConfiguredNetworks();
				
				if ((!mWiFiManager01.isWifiEnabled())
						&& (mWiFiManager01.getWifiState() != WifiManager.WIFI_STATE_ENABLING)) {
					mWiFiManager01.setWifiEnabled(true);
				}
				
				if (wifiConf.size() > 0) {
					int netWorkId = wifiConf.get(0).networkId;
					mWiFiManager01.enableNetwork(netWorkId, true);
					int index = 0;
					for (WifiConfiguration singleWifiConf : wifiConf) {
						addItem((index + 1) + " SSID." + singleWifiConf.SSID, "NetWorkID:"
								+ singleWifiConf.networkId);
						index = index + 1;
					}
				}

			}

		});
	}

	private void addItem(String title, String str) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("title", title);
		map.put("text", str);
		listItem.add(map);
		listItemAdapter.notifyDataSetChanged();
	}
 


  • 大小: 11.7 KB
  • 大小: 11.6 KB
  • 大小: 36.5 KB
分享到:
评论

相关推荐

    android 关闭wifi和打开移动数据网络

    本文将详细讲解如何在Android设备上关闭Wi-Fi并启用移动数据网络。 首先,我们要理解这两个网络连接的基本概念。Wi-Fi是一种无线局域网(WLAN)技术,允许设备通过无线电波连接到互联网,通常速度较快且流量费用较...

    Java-Wifi-Android.rar_BSSID_Java打开WiFi_android wifimanager_andro

    Wifi连接网络,通过程序你将了解到定义WifiManager对象,定义WifiInfo对象,获取网络连接列表,定义一个WifiLock,打开Wifi网卡,关闭Wifi网卡,检查当前Wifi网卡状态,扫描周边网络,每次点击扫描之前清空上一次的...

    Android 设置Wifi热点、打开与关闭的监听

    本篇文章将深入探讨如何在Android应用中设置WiFi热点、以及如何监听热点的开启和关闭事件。以下是对相关知识点的详细说明: 1. **WiFi热点API**:Android提供了`ConnectivityManager`和`WifiManager`这两个系统服务...

    WIFI连接源码(WIFI扫描 WIFI打开 WIFI关闭 WIFI连接).rar

    这份" WIFI连接源码(WIFI扫描 WIFI打开 WIFI关闭 WIFI连接).rar "压缩包文件提供了实现这些功能的源代码。下面我们将详细探讨涉及的四个关键模块:`control_wifi`、`client_socket`、`wifi_info`和`android_web_...

    uni-app调用Android原生可以实现通信及打开WiFi

    在uni-app中,通过调用原生插件,我们可以实现与Android系统更深度的交互,比如控制WiFi的开启与关闭,以及其他一些特定的硬件操作。\n\n1. **调用原生插件原理**\n 在uni-app中,调用Android原生功能主要是通过`uni...

    安卓wifi蓝牙相关-WifiManager.rar

    1. **Wi-Fi状态管理**:`WifiManager` 提供了获取当前Wi-Fi状态的方法,如`isWifiEnabled()` 可以检查Wi-Fi是否已打开,`setWifiEnabled()` 则可以用来开启或关闭Wi-Fi。 2. **扫描网络**:通过`startScan()` 方法...

    wifi开发,调用系统wifi,打开网络

    2. 打开/关闭WiFi:`WifiManager`提供了`enable()`和`disable()`方法来开启或关闭WiFi。但请注意,这些操作可能需要用户权限,所以在AndroidManifest.xml中添加`ACCESS_FINE_LOCATION`或`ACCESS_COARSE_LOCATION`...

    wifi连接与关闭打开

    从压缩包文件名"Android应用源码开关WIFI热点搜索连接开源有注释"来看,这可能是一个开源的Android应用项目,包含了实现Wi-Fi开关、热点创建、网络搜索和连接功能的源代码。通过阅读和分析这些源码,开发者可以学习...

    android 解决部分手机连接热点wifi导致被切换,enablenetwork(netID, true)无效的问题

    `WifiManager`是Android系统中用于管理WiFi连接的核心组件,它提供了多种与WiFi相关的功能,如扫描可用的WiFi网络、连接到指定的网络、关闭或开启WiFi等。在处理WiFi热点连接问题时,我们通常会用到`enableNetwork...

    wifi打开获取变慢的解决demo

    这个问题通常发生在设备的WiFi状态由关闭切换到打开的过程中,应用尝试立即获取WiFi网络信息时,可能会出现响应缓慢的现象,导致用户界面(UI)加载数据的时间过长,影响用户体验。本文将通过分析问题、分享解决方案...

    Android中wifi检测

    `WifiManager`提供了`isWifiEnabled()`方法,用于检查WiFi是否已打开: ```java boolean isWifiEnabled = wifiManager.isWifiEnabled(); if (isWifiEnabled) { // WiFi已开启 } else { // WiFi已关闭 } ``` 为了...

    android WIFI管理,Toast提示

    这个服务允许应用程序打开、关闭WIFI,并获取WIFI的状态信息。`Toast`则是Android中一种轻量级的提示机制,用于短暂地显示一些简短的信息给用户,而不会中断当前的操作流程。在"android WIFI管理,Toast提示"这个...

    Android高级应用源码-Android 开启指定名称和密码的 Wifi热点 demo.rar

    开启WiFi热点的关键在于调用`WifiManager`的`createWifiInetSocket()`方法来创建一个WiFi接入点(即热点),然后使用`setWifiApEnabled()`方法来启用或禁用这个热点。为了设置热点的名称(SSID)和密码(预共享密钥...

    用于测试WiFi的demo

    本“用于测试WiFi的demo”是一个专门为开发者设计的示例项目,它包含了实现WiFi功能操作的核心代码,如打开、关闭WiFi以及追踪WiFi状态的逻辑。这个Demo对于理解如何在Android或iOS等平台上进行WiFi相关的编程实践...

    WIFI输入密码连接+wifi 检测

    5. **保存配置**:在某些情况下,比如系统重启或用户手动关闭再打开WIFI,需要保存当前的网络配置,以便下次自动连接。这可以通过调用`WifiManager.saveConfiguration()`来实现。 然而,根据描述,当在Android 5.0...

    android开发:wifi通信

    本文将深入探讨如何在Android平台上实现WiFi相关的功能,包括打开和关闭WiFi、查询WiFi状态、搜索附近的WiFi热点、连接和断开网络以及检查网络连接状态。 首先,我们来了解如何打开和关闭WiFi。在Android中,这些...

    实现WiFi连接功能demo

    例如,`ACCESS_WIFI_STATE`用于获取WiFi状态,`CHANGE_WIFI_STATE`用于改变WiFi状态(如开启/关闭),以及`INTERNET`权限,确保通过WiFi的网络访问。 3. **扫描WiFi网络**: - 调用`WifiManager.startScan()`方法...

    Android系统中Wifi连接网络的源代码

    Wifi连接网络,通过程序你将了解到定义WifiManager对象,定义WifiInfo对象,获取网络连接列表,定义一个WifiLock,打开Wifi网卡,关闭Wifi网卡,检查当前Wifi网卡状态,扫描周边网络,每次点击扫描之前清空上一次的...

    android Wifi 状态监听管理公共类

    Register()方法可以注册一个监听wifi...还通过取得WifiManager对象实现的对wifi打开关闭的操作;通过wifiManger获取到WiFiInfo获取到当前的设备的MAC地址,接入点的BSSID,IP地址,连接的ID,WifiInfo的所有信息包等。

    android开发入门之wifi

    在Android开发中,WiFi...总之,Android WiFi开发涉及到权限管理、`WifiManager`对象的使用以及相关事件的监听。理解并掌握这些基础知识,可以帮助开发者构建出功能丰富的移动应用,满足用户在不同场景下的网络需求。

Global site tag (gtag.js) - Google Analytics