Android WiFi开发

这篇博客详细介绍了Android WiFi开发,包括扫描、连接、信息处理及创建WiFi热点。文章提供了相关类的说明,如ScanResult、WifiConfiguration和WifiManager,并讨论了在不同环境下遇到的问题及其解决方案。此外,还涉及到了WiFi热点的开启、状态监听以及Android系统版本对热点开启的影响。
摘要由CSDN通过智能技术生成

概述

介绍Android WiFi的扫描、连接、信息、以及WiFi热点等等的实现,并用代码实现。

详细

一、准备工作

开发环境:

jdk1.8

Eclipse Luna Service Release 1 (4.4.1)

运行环境:

华为荣耀6(Android4.4)、华为p9(Android7.0)

实现功能:

  • Android WiFi开发 (一)扫描、连接、信息

  • Android WiFi开发 (二)Wifi热点

二、代码结构

代码包里面,有两个部分,一个是源码,一个是V7支持包。

image.png

(源码项目)

image.png

(V7包)

三、Android WiFi开发 (一)扫描、连接、信息

1、详细讲解

在平常开发中经常会涉及到wifi相关的内容,在此将之前所用到的整理一下,以免忘记。

操作wifi的相关类,主要放在Android.net.wifi包下面。使用wifi相关方法需要申请一些权限:

image.png

ACCESS_WIFI_STATE 获取WiFi状态。

CHANGE_WIFI_STATE 改变WiFi状态。

CHANGE_WIFI_MULTICAST_STATE 改变WiFi多播状态

申请权限方式:在AndroidManifest.xml文件中填写

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

wifi相关操作所需要用到的类。

image.png

先说一下wifi的基本使用情况。

import java.util.List;  
import android.content.Context;  
import android.net.wifi.ScanResult;  
import android.net.wifi.WifiConfiguration;  
import android.net.wifi.WifiInfo;  
import android.net.wifi.WifiManager;  
import android.net.wifi.WifiManager.WifiLock;  
import android.widget.Toast;  
  
public class WifiAdmin {  
    // 定义WifiManager对象     
    private WifiManager mWifiManager;    
    // 定义WifiInfo对象     
    private WifiInfo mWifiInfo;    
    // 扫描出的网络连接列表     
    private List<ScanResult> mWifiList;    
    // 网络连接列表     
    private List<WifiConfiguration> mWifiConfiguration;    
    // 定义一个WifiLock     
    WifiLock mWifiLock;  
   
    // 构造器     
    public WifiAdmin(Context context) {    
        // 取得WifiManager对象     
        mWifiManager = (WifiManager) context    
                .getSystemService(Context.WIFI_SERVICE);    
        // 取得WifiInfo对象     
        mWifiInfo = mWifiManager.getConnectionInfo();    
    }    
    
    // 打开WIFI     
    public void openWifi(Context context) {    
        if (!mWifiManager.isWifiEnabled()) {    
            mWifiManager.setWifiEnabled(true);  
        }else if (mWifiManager.getWifiState() == 2) {  
            Toast.makeText(context,"亲,Wifi正在开启,不用再开了", Toast.LENGTH_SHORT).show();  
        }else{  
            Toast.makeText(context,"亲,Wifi已经开启,不用再开了", Toast.LENGTH_SHORT).show();  
        }  
    }    
    
    // 关闭WIFI     
    public void closeWifi(Context context) {    
        if (mWifiManager.isWifiEnabled()) {    
            mWifiManager.setWifiEnabled(false);    
        }else if(mWifiManager.getWifiState() == 1){  
            Toast.makeText(context,"亲,Wifi已经关闭,不用再关了", Toast.LENGTH_SHORT).show();  
        }else if (mWifiManager.getWifiState() == 0) {  
            Toast.makeText(context,"亲,Wifi正在关闭,不用再关了", Toast.LENGTH_SHORT).show();  
        }else{  
            Toast.makeText(context,"请重新关闭", Toast.LENGTH_SHORT).show();  
        }  
    }    
    
    // 检查当前WIFI状态     
    public void checkState(Context context) {    
        if (mWifiManager.getWifiState() == 0) {  
            Toast.makeText(context,"Wifi正在关闭", Toast.
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值