`
Bauble
  • 浏览: 67501 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android22_WIFI网络操作

阅读更多

 

一、什么是WIFI

       WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来联网。常见的就是一个无线路由器,在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一个ADSL线路或者别的上网线路,则又被称作“热点”。

 

二、获取WIFI网卡的状态

WIFI网卡的状态是由一系列的整型常量来表示的,通常是在WIFIManager类中。

1.WIFI_STATE_DISABLEDWIFI网卡不可用

2.WIFI_STATE_DISABLINGWIFI正在关闭

3.WIFI_STATE_ENABLEDWIFI网卡可用

4.WIFI_STATE_ENABLINGWIFI网卡正在打开

5.WIFI_STATE_UNKNOWN:未知网卡状态

 

三、操作WIFI所需要的权限

 

    关于操作权限,可以在帮助文档Manifest.Permission中找到完整的列表。部分常用如下:

 

 四、改变WIFI网卡的状态

    对WIFI网卡进行操作需要通过WifiManager对象进行,获取该对象的方法如下:

wifiManager = (WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);

 

  打开WIFI网卡:

wifiManager.setWifiEnabled(true);

 

       关闭WIFI网卡:

wifiManager.setWifiEnabled(false);

 

      获取网卡当前的状态:

wifiManager.getWifiState()

 例子程序:

 

   

WifiActivity.java

 

package com.android.activity;
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 {
	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) {
			wifiManager = (WifiManager)WifiActivity.this
					.getSystemService(Context.WIFI_SERVICE);
			wifiManager.setWifiEnabled(false);
			System.out.println("wifi state --->" 
					+ wifiManager.getWifiState());
			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();
		}
    }
}
 

 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.android.activity" 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="10" />
	<!-- 以下是使用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>
  • 大小: 159.1 KB
  • 大小: 8 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android-wifi.zip_android_android wifi_android wifi_wifi androi

    在给定的“Android-wifi.zip”压缩包中,包含了一个Android Wi-Fi应用的APK文件以及其源码,这对于开发者来说是一个宝贵的资源,可以深入理解Wi-Fi功能的实现细节。 首先,我们要了解Android系统的Wi-Fi服务。...

    mtk7661_wifi_and_bt_905X3_android9.0_patch.zip

    描述中提到的"mtk7661_wifi_and_bt_905X3_android9.0环境下的驱动和补丁"进一步确认了这个压缩包的主要内容,即驱动程序和补丁,它们是为特定硬件环境(MTK7661,905X3平台)和操作系统版本(Android 9.0)定制的。...

    android_wifi.rar_android_android wifi开发

    3. **扫描WiFi网络**:通过`WifiManager`的`scanResults`属性,可以获取到所有可用的WiFi网络信息。调用`startScan()`方法发起扫描后,需要监听`ScanResults`回调以获取扫描结果。 4. **连接WiFi网络**:如果要手动...

    Android-WIFI.rar_WiFi模块程序_android wifi_android wifi slam_android

    在Android系统中,WiFi模块是实现无线网络连接的关键部分,对于开发者来说,理解和掌握如何进行Android WiFi开发至关重要。本文将深入探讨Android WiFi的模块程序、初始化过程、连接AP的步骤,以及WiFi SLAM...

    Realtek_wifi_SDK_for_android_20111103.rar_android_realtek_realte

    1. **wpa_supplicant**:这是一个无线网络连接管理工具,用于处理WPA(Wi-Fi Protected Access)安全认证协议,帮助Android设备连接到受保护的WiFi网络。 2. **hostapd**:则是一个无线接入点(Access Point,AP)...

    android_rssi.rar_Android WIFI RSSI_WIFI-RSSI_wifi ap_wifi信号_安卓 r

    这个知识点涉及到Android应用程序开发,特别是那些需要处理网络连接质量或者优化Wi-Fi性能的场景。在"android_rssi.rar"压缩包中,我们很可能会找到关于如何在Android应用中获取和处理RSSI数据的代码示例或文档。 ...

    Android_GPS_WIFI_网络定位

    本教程主要探讨Android系统如何利用GPS(全球定位系统)、WIFI和网络定位技术来获取位置信息。 首先,我们来理解GPS(Global Positioning System)定位。GPS是一种基于卫星导航的全球定位系统,能够提供地理位置和...

    Android__WIFI模块分析

    在Android系统中,WIFI模块是移动设备连接无线网络的核心组件。本文将深入解析Android WIFI模块的架构、核心模块、工作流程以及相关代码实现。 **WIFI模块框图** WIFI模块的架构从上到下可以分为应用层、框架层、...

    android_wifi_demo

    这个“android_wifi_demo”项目显然旨在演示如何在Android设备上执行这些操作。通过该项目,我们可以学习到如何利用Android的Wi-Fi API进行一系列功能实现,如配置新网络、错误处理以及连接状态的管理。以下是一些...

    realtek_wifi_SDK_for_android_JB.tar.gz_RTL8188_RTL8189_android a

    《Realtek WiFi SDK for Android JB:为Android设备增强无线连接》 在当今信息化社会,无线网络已经成为日常生活和工作中的重要组成部分。Realtek公司作为全球知名的半导体制造商,为满足这一需求,推出了专门针对...

    chariot6.70+endpoint7.30+pe_android_730_Wifi打流工具

    总结来说,“chariot6.70+endpoint7.30+pe_android_730_Wifi打流工具”是一个全面的WiFi性能测试解决方案,适用于测试和优化各种环境下的WiFi网络。通过对WiFi网络进行打流测试,我们可以深入理解网络的性能瓶颈,为...

    AndroidWiFi.rar_android_androidwifi_ppt for android

    这个名为"AndroidWiFi.rar"的压缩包包含了一份名为"AndroidWiFi.ppt"的PPT文件,它详细阐述了如何在Android平台上集成和管理Wi-Fi功能。让我们深入探讨这个话题,了解Android Wi-Fi API的使用、Wi-Fi热点的创建、...

    wifi_java_androidwifi_androidhotspot_

    这个标题"wifi_java_androidwifi_androidhotspot_"暗示了我们将探讨如何利用Java在Android上处理WiFi相关的任务。下面我们将深入讲解相关知识点。 1. **Android WiFi API**: Android SDK提供了`android.net.wifi`包...

    wifi.rar_Android WiFi_Android wifi 通信_site:www.pudn.com_socket

    android系统的wifi网络操作,并建立局域网socket通信。

    EZScreenshot-master_androidwifi_android_投屏_

    【标题】"EZScreenshot-master_androidwifi_android_投屏_" 是一个关于Android设备通过WiFi实现屏幕投射的项目。这个项目的重点在于开发一个功能,使得用户能够在同一WiFi网络下的多个智能设备之间实现屏幕共享。 ...

    8723BS_wifi_bt_android 5.1_for_kernel_3.10.rar

    标题中的“8723BS_wifi_bt_android 5.1_for_kernel_3.10”表明这是一款针对Realtek RTL8723BS芯片的Wi-Fi和蓝牙驱动程序,适用于运行Android 5.1操作系统的设备,且这些驱动是为内核版本3.10设计的。描述中提到的...

    wifi.rar_WIFI JAVA_WifiActivity_java wifi_wifi_wifi无线135mdpi

    结合标签“wifi_java”和“java_wifi”,我们可以推断这个项目主要使用Java语言来处理Wi-Fi相关的编程任务,可能包括扫描可用的Wi-Fi网络、连接到特定的网络、发送和接收数据等操作。而“wifiactivity”标签进一步...

    8723bu_android_4.4_wifi_bt_for_kernel_3.0

    标题“8723bu_android_4.4_wifi_bt_for_kernel_3.0”和描述“8723BU ANDROID4.4/KERNEL3.0”指向的是一个专为基于Android 4.4(KitKat)操作系统和Linux内核3.0设计的8723BU无线Wi-Fi和蓝牙驱动程序包。8723BU是...

    Android开发入门_WiFi_代码.pdf

    在Android开发中,WIFI网络操作是移动应用与外界通信的重要组成部分。本文将详细介绍如何在Android平台上实现WiFi的初始化、启用、查找接入点(AP)、配置参数以及连接操作。 首先,我们要理解WIFI的基本概念。WIFI...

Global site tag (gtag.js) - Google Analytics