`

Android学习笔记之WI-FI(1)

阅读更多
<1>什么是Wi-Fi?
Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。Wi-Fi是一个无线网路通信技术的品牌,由Wi-Fi联盟(Wi-FiAlliance)所持有。
Wi-Fi 原先是无线保真的缩写,Wi-Fi 的英文全称为wireless fidelity,在无线局域网的范畴是指“无线相容性认证”,实质上是一种商业认证,同时也是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。
<2>获取WI-FI网卡的状态(常量)
public    static    final    int    WIFI_STATE_DISABLED
Wi-Fi is disabled.      WI-FI网卡不可用
Constant Value(常量值):        1         (0x00000001)                  

public    static    final   int     WIFI_STATE_DISABLING  
Wi-Fi is currently being disabled.   WI-FI网卡正在关闭
The state will change to WIFI_STATE_DISABLED if it finishes successfully.
最终状态会变成WI-FI网卡不可用
Constant Value(常量值):         0          (0x00000000)                  

public   static    final      int     WIFI_STATE_ENABLED  
Wi-Fi is enabled.  WI-FI网卡可用
Constant Value(常量值):        3         (0x00000003)                  

public   static    final    int      WIFI_STATE_ENABLING  
Wi-Fi is currently being enabled.   WI-FI网卡正在打开
The state will change to WIFI_STATE_ENABLED if it finishes successfully.
最终状态会变成WI-FI网卡可用
Constant Value(常量值):         2         (0x00000002)                  

public    static    final    int       WIFI_STATE_UNKNOWN  
Wi-Fi is in an unknown state.  未知 网卡状态
This state will occur when an error happens while enabling or disabling.
Constant Value(常量值):         4          (0x00000004)                  

<3>操作WI-FI的所需的权限
可以在帮助文档里找到详细的权限,这里只列出一部分。
Manifest.permission(权限)
public         static         final         String        CHANGE_WIFI_MULTICAST_STATE  
Allows applications to enter Wi-Fi Multicast mode
Constant Value:                             "android.permission.CHANGE_WIFI_MULTICAST_STATE"                  

public         static         final         String        CHANGE_WIFI_STATE  
Allows applications to change Wi-Fi connectivity state
Constant Value:                             "android.permission.CHANGE_WIFI_STATE"                  

public         static         final         String        CHANGE_NETWORK_STATE  
Allows applications to change network connectivity state
Constant Value:                             "android.permission.CHANGE_NETWORK_STATE

<4>改变WI-FI网卡的状态
对WI-FI网卡进行操作需要通过WifiManager对象进行
WifiManager  wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
打开WI-FI网卡
wifiManager.setWifiEnabled(true);  
关闭WI-FI网卡
wifiManager.setWifiEnabled(false);  
获取网卡当前状态
wifiManager..getWifiState()

package mars.wifi;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class WifiActivity extends Activity {
    /** Called when the activity is first created. */
	private Button startButton = null;
	private Button stopButton = null;
	private Button checkButton = null;
	private WifiManager wifiManager = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startButton = (Button)findViewById(R.id.startWifi);
        stopButton = (Button)findViewById(R.id.stopWifi);
        checkButton = (Button)findViewById(R.id.checkWifi);
        startButton.setOnClickListener(new StartWifiListener());
        stopButton.setOnClickListener(new StopWifiListener());
        checkButton.setOnClickListener(new CheckWifiListener());
    }
    class StartWifiListener implements OnClickListener{

		public void onClick(View v) {
			wifiManager = (WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
			wifiManager.setWifiEnabled(true);
			System.out.println("wifi state --->" + wifiManager.getWifiState());
			Toast.makeText(WifiActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
		}
    }
    class StopWifiListener implements OnClickListener{

		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			wifiManager = (WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
			wifiManager.setWifiEnabled(false);
			switch (wifiManager.getWifiState()) 
            { 
                case WifiManager.WIFI_STATE_DISABLED: 
                	System.out.println("wifi state --->" + "WIFI已关闭");
                    break; 

                case WifiManager.WIFI_STATE_DISABLING: 
                	System.out.println("wifi state --->" + "WIFI正在关闭中"); 
                    break; 
                case WifiManager.WIFI_STATE_ENABLED: 
                	System.out.println("wifi state --->" + "WIFI已启用"); 
                    break; 
                case WifiManager.WIFI_STATE_ENABLING: 
                	System.out.println("wifi state --->" + "WIFI正在启动中"); 
                    break; 
                case WifiManager.WIFI_STATE_UNKNOWN: 
                	System.out.println("wifi state --->" + "未知WIFI状态"); 
                    break; 
            } 
			Toast.makeText(WifiActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
		}
    
    }
    
    class CheckWifiListener implements OnClickListener{

		public void onClick(View v) {
			wifiManager = (WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);
			System.out.println("wifi state --->" + wifiManager.getWifiState());
			Toast.makeText(WifiActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();
		}
    	
    }
}


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="mars.wifi" android:versionCode="1" android:versionName="1.0">
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".WifiActivity" android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>

	</application>
	<uses-sdk android:minSdkVersion="4" />
	<!-- 以下是使用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>
</manifest> 
分享到:
评论

相关推荐

    Android学习笔记--通过wifi向服务器端发送数据.doc

    这篇学习笔记主要介绍了如何在Android应用中实现这一功能。以下是对笔记内容的详细解释: 首先,Android应用需要使用`Socket`类来建立与服务器之间的连接。在提供的代码片段中,可以看到在`onClick`方法中,创建了...

    adnroid学习笔记3--wifi网络操作

    - `&lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt;`:允许应用程序访问Wi-Fi网络的信息。 - `&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;`:允许应用...

    电信设备-接入无线路由器的方法、系统及所适用的移动设备.zip

    - **智能手机**:无论是iOS还是Android系统,都能轻松连接无线路由器,通过设置中的Wi-Fi选项进行连接。 - **平板电脑**:同智能手机,平板电脑也能通过内置的Wi-Fi功能接入无线网络。 - **笔记本电脑**:Windows...

    2021-学习相关-Android 局域网简易云端笔记系统源码.zip

    这个压缩包文件“2021-学习相关-Android 局域网简易云端笔记系统源码.zip”包含了一个Android应用程序的源代码,该程序设计用于在局域网内实现简单的云端笔记功能。开发者或者学习者可以通过研究这个源码来了解...

    WiFihotspot:转载自https

    通过阅读和理解"WiFihotspot-master"压缩包中的代码,开发者可以学习如何在Android应用中集成Wi-Fi热点功能。这不仅对移动开发人员有用,也为那些希望深入了解Android网络编程的开发者提供了宝贵的学习资源。同时,...

    BT-WiFi-HotSpot-Keep-Alive:BT-WiFi热点连接器,可通过定期检查连接状态来保持连接状态

    在技术实现上,这个应用可能利用了Android或iOS系统的API,如Wi-Fi管理接口,来监控和控制Wi-Fi连接状态。对于Android,可以使用`WifiManager`类中的方法,如`isWifiEnabled()`和`reconnect()`;而对于iOS,可以使用...

    Android应用源码之将手机摄像头获取的图片通过wifi发送到PC机上并进行显示.rar

    该压缩包文件主要涉及到的是一个Android应用开发的实践案例,其目标是实现手机摄像头拍摄的图片通过Wi-Fi网络传输到个人计算机(PC)并进行显示。这个案例涵盖了多个IT领域的知识点,包括Android应用开发、图像处理...

    Android 局域网简易云端笔记系统源码

    1. **局域网通信**:项目中的“局域网云笔记”利用了Android的Wi-Fi功能,通过TCP/IP协议在设备间建立连接。Socket编程是关键,它允许两台设备创建点对点的连接,进行数据传输。开发者可能还使用了BroadcastReceiver...

    Android开发笔记——模拟器、应用教程 pdf

    3. **网络配置**:模拟器支持配置不同的网络环境,如Wi-Fi、移动数据等,这有助于测试网络相关功能。 4. **传感器模拟**:模拟器可以模拟各种传感器,如GPS、加速度计、陀螺仪等,这对于测试位置感知或运动感应的...

    行业资料-电子功用-便携式终端和用于遥控电子产品的方法的介绍分析.rar

    2. Wi-Fi:作为互联网接入的主要方式,Wi-Fi在智能家居系统中扮演着核心角色,如智能灯泡、智能插座、安防摄像头等设备可以通过Wi-Fi实现远程控制。 3. 红外遥控:传统家电如电视、空调等,通常采用红外遥控,随着...

    手机蓝牙连接电脑共享宽带教程

    10. **替代方案**:如果蓝牙共享不稳定或速度不理想,可以考虑使用USB数据线连接或等待后续的Wi-Fi共享教程,通常Wi-Fi共享提供更快更稳定的网络连接。 通过以上步骤,用户可以成功利用手机蓝牙连接电脑共享宽带,...

    android安卓笔记

    - **WifiManager-WIFI管理**:`WifiManager`类提供了管理和监控Wi-Fi连接的功能,可以用来开启/关闭Wi-Fi,扫描可用的接入点,并连接到指定的网络。 #### Uri—统一资源标识符 - **Uri-统一资源标识符**:`Uri`类...

    Android 局域网简易云端笔记系统源码.zip

    本项目"Android 局域网简易云端笔记系统源码"提供了一个基于Android的局域网内的云端笔记解决方案,实现了在本地网络环境中分享和同步笔记的功能,为开发者提供了宝贵的参考和学习素材。 首先,我们来了解这个系统...

    华清嵌入式课程学习笔记

    无线通信协议如Wi-Fi、蓝牙、Zigbee,以及以太网和串行通信协议如UART、SPI、I2C等是嵌入式系统中的常见通信方式。 9. 安全性:嵌入式系统可能面临黑客攻击,因此安全性设计是必不可少的。这包括固件安全、数据加密...

    Android 局域网简易云端笔记系统源码.rar

    在这个源码中,Android设备充当客户端,通过Wi-Fi连接到同一局域网内的服务器,实现数据的实时共享和存储。 1. **网络通信技术**:该系统可能使用了Socket编程或者HTTP/HTTPS协议来实现客户端与服务器之间的通信。...

    精品专题资料(2021-2022年收藏)基于Android手机导航系统的研究与设计论文.doc

    - **Java学习笔记**: 用于深入理解Java语言。 - **Android/OPhone开发完全讲义**: 针对Android系统深入研究的教材。 以上是对基于Android手机导航系统研究与设计的主要知识点的概述,设计这样的系统需要综合运用...

    行业资料-电子功用-具有可旋转的影像撷取与声音播放模块的电子装置的介绍分析.rar

    - 连接性:蓝牙、耳机插孔或无线音频标准(如Wi-Fi Direct)支持外部音频设备的连接。 - 应用场景:音频播放模块适用于音乐播放、电影观看、电话会议和游戏等。 3. 电子装置的综合功能: - 操作系统:设备通常...

    安卓系统的50个实用技巧.pdf

    23. 无线热点分享 安卓手机支持将移动网络转化为Wi-Fi热点,允许其他设备连接并共享网络,这在没有Wi-Fi的情况下非常实用。只需在设置中找到“便携式Wi-Fi热点”选项并开启即可。 24. 屏幕截图 安卓系统提供了简单...

Global site tag (gtag.js) - Google Analytics