【Android - Wi-Fi】

news/2024/10/27 17:24:51/

Android - Wi-Fi

Android允许应用程序访问以非常低的级别查看无线连接状态的访问权限.应用程序几乎可以访问wifi连接的所有信息.

应用程序可以访问的信息包括连接网络的链接速度,IP地址,协商状态,其他网络信息.应用程序还可以扫描,添加,保存,终止和启动Wi-Fi连接.

Android提供 WifiManager API来管理WIFI连接的所有方面.我们可以通过调用 getSystemService 方法来实例化这个类.它的语法在下面和下面给出;

WifiManager mainWifiObj;
mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE);

为了扫描无线网络列表,您还需要注册BroadcastReceiver.它可以使用 registerReceiver 方法使用接收器类对象的参数进行注册.它的语法在下面给出 :

class WifiScanReceiver extends BroadcastReceiver {public void onReceive(Context c, Intent intent) {}
}WifiScanReceiver wifiReciever = new WifiScanReceiver();
registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

可以通过调用WifiManager类的 startScan 方法来启动wifi扫描.此方法返回ScanResult对象的列表.您可以通过调用列表的 get 方法来访问任何对象.其语法在下面和下面给出;

List<ScanResult> wifiScanList = mainWifiObj.getScanResults();
String data = wifiScanList.get(0).toString();

除了扫描之外,您还可以使用WifiManager类中定义的方法更好地控制WIFI.它们列出如下 :

Sr.No方法&描述
1addNetwork (WifiConfiguration config) 此方法将新的网络描述添加到已配置的网络集.
2createWifiLock(String tag) 此方法创建一个新的WifiLock.
3disconnect() 此方法与当前活动的接入点取消关联.
4enableNetwork(int netId,boolean disableOthers) 此方法允许先前配置的网络关联.
5getWifiState() 这方法获得Wi-Fi启用状态
6isWifiEnabled() 此方法返回是启用Wi-Fi还是已禁用.
7setWifiEnabled(boolean enabled) 此方法启用或禁用Wi-Fi.
8updateNetwork(WifiConfiguration config) 此方法更新现有已配置网络的网络描述.

示例
以下是演示WIFI使用的示例.它创建了一个打开wifi并关闭wifi的基本应用程序
要试验这个例子,你需要在打开wifi的实际设备上运行它.

步骤描述
1您将使用Android工作室在com.example.sairamkrishna.myapplication包下创建Android应用程序.
2修改src/MainActivity.java文件以添加WebView代码.
3修改res/layout/activity_main以添加相应的XML组件
4修改AndroidManifest.xml以添加必要的权限
5运行应用程序并选择正在运行的android设备并安装应用程序在它上面并验证结果.

Follo wing是修改后的主活动文件 src/MainActivity.java 的内容.

package com.example.sairamkrishna.myapplication;import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class MainActivity extends Activity {Button enableButton,disableButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);enableButton=(Button)findViewById(R.id.button1);disableButton=(Button)findViewById(R.id.button2);enableButton.setOnClickListener(new OnClickListener(){public void onClick(View v){WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);wifi.setWifiEnabled(true);}});disableButton.setOnClickListener(new OnClickListener(){public void onClick(View v){WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);wifi.setWifiEnabled(false);}});}
}

以下是xml res/layout/activity_main.xml的修改内容 .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/imageView"android:src="@drawable/abc"android:layout_alignParentTop="true"android:layout_centerHorizontal="true" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="76dp"android:text="Enable Wifi"android:layout_centerVertical="true"android:layout_alignEnd="@+id/imageView" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Disable Wifi"android:layout_marginBottom="93dp"android:layout_alignParentBottom="true"android:layout_alignStart="@+id/imageView" /></RelativeLayout>

以下是 AndroidManifest.xml 文件的内容.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.sairamkrishna.myapplication" ><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"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>
</manifest>

http://www.ppmy.cn/news/893640.html

相关文章

Wi-Fi 6

# 小米10发布会 2020年2月13日&#xff0c;小米10发布会上提到了一项技术——Wi-Fi 6。 并配套推出了支持Wi-Fi 6功能的小米AIoT路由器AX3600(手机和路由器同时支持Wi-Fi 6&#xff0c;才能发挥出Wi-Fi 6的威力)。 # 何为Wi-Fi 6 &#xff1f; IEEE 802.11ax&#xff0c;W…

Wi-Fi基础术语

AP: access point&#xff0c;即无线接入点&#xff0c;是一个无线网络的创建者&#xff0c;是网络的中心节点&#xff1b;无线路由器就是一个AP STA: station&#xff0c;指每一个连接到无线网络中的终端设备都可以称为一个站点 IBSS&#xff1a;Independent Basic Service Se…

'fi' 和 fi

今天用Edge读《Automatic Text Input Generation for Mobile Testing》&#xff0c;遇到specification&#xff0c;复制到词典查&#xff0c;结果没有这个词。 手打specification&#xff0c;却有。 觉得很神奇&#xff0c;然后发现fi是一个字符。 但是更神奇的是&#xff0c;s…

Wi-Fi 简介

Wi-Fi 简介 Wi-Fi&#xff08;Wireless Fidelity&#xff09;即无线保真&#xff0c;是一个无线网络通信技术的品牌&#xff0c;由Wi-Fi联盟&#xff08;Wi-Fi Aliance&#xff0c; WFA&#xff09;所拥有&#xff0c;WFA负责Wi-Fi的认证与商标授权。Wi-Fi是一种认证名称&…

【WiFi】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 WiFi学习&#xff08;一&#xff09;术语 前言 术语很多不明白就查 Part1-general Wi-Fi (Wireless Fidelity) 一个名称和标志&#xff0c;表明行业组织 Wi-Fi 联盟已认证 …

你真的足够了解Wi-Fi吗?

你真的足够了解Wi-Fi吗&#xff1f; Wi-Fi的起源与诞生 第一个Wi-Fi网络出现在20世纪90年代末期&#xff0c;21世纪初进入快速发展时期。现如今&#xff0c;人们使用移动智能终端越来越频繁&#xff0c;而大多数移动设备没有以太网接口&#xff0c;这使得Wi-Fi已成为移动通信…

mifi

MIFI 前言mifi是什么mifi的基本特征现有模式类别【随身wifi】mifi与wifi的区别和工作模式随身wifi的工作模式工作平台系统 前言 最近有这个需求&#xff0c;但是实在不知从何下手&#xff0c;就先四处搜集点资料总结以后再细致系统修改纠错整理吧。有路过的谢谢可以指点一下。…

Wi-Fi Aware -- 用Wi-Fi来发现世界

前言 相像一下&#xff0c;走在商场里&#xff0c;看到一家没吃过的新店&#xff0c;拿出手机&#xff0c;就能收到店家的菜单&#xff0c;然后再决定要不要进去。 走在博物馆里&#xff0c;看到一件文物&#xff0c;很好奇这是什么&#xff0c;但是周围又没有向导&#xff0c;…