一上班就开始总结上礼拜写的wifi,先来说说wifi的属性

在Android的官方文档中定义了如下五种状态:

WIFI_STATE_DISABLED   WIFI 不可用

WIFI_STATE_DISABLING  WIFI 正在关闭

WIFI_STATE_ENABLED     WIFI 可用

WIFI_STATE_ENABLING    WIFI 正在打开

WIFI_STATE_UNKNOWN    WIFI 状态不可知

以下是WifiManager类的函数:

要操作WIFI设备,就需要使用Context.getSystemService(Context.WIFI_SERVICE)来获取WifiManager对象,并通过这个对象来管理我们的WIFI设备。

addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。

calculateSignalLevel(int rssi , int numLevels) 计算信号的等级

compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度

createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI连接

disableNetwork(int netId) 让一个网络连接失效

disconnect() 断开当前的WIFI连接

enableNetwork(int netId, Boolean disableOthers) 连接netId所指的WIFI网络,并是其他的网络都被禁用

getConfiguredNetworks() 获取网络连接的状态

getConnectionInfo() 获取当前连接的信息

getDhcpInfo() 获取DHCP 的信息

getScanResulats() 获取扫描测试的结果

getWifiState() 获取当前WIFI设备的状态

isWifiEnabled() 判断WIFI设备是否打开

pingSupplicant() ping操作,和PC的ping操作相同作用

ressociate() 重新连接WIFI网络,即使该网络是已经被连接上的

reconnect() 重新连接一个未连接上的WIFI网络

removeNetwork() 移除某一个网络

saveConfiguration() 保留一个配置信息

setWifiEnabled() 让一个连接有效

startScan() 开始扫描

updateNetwork(WifiConfiguration config) 更新一个网络连接

获取周围的wifi热点列表

想得到周围的WIFI热点列表,可以使用WifiManager.getScanResults()返回一个ScanResult列表,ScanResult对象中,包含了以下几个属性:

BSSID 接入点的地址

SSID 网络的名字,唯一区别WIFI网络的名字

Capabilities 网络接入的性质

Frequency 当前WIFI设备附近热点的频率(MHz)

Level 所发现的WIFI网络信号强度

查看自己已连接上的wifi信息

WifiInfo这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。

getBSSID()  获取BSSID属性 也就是路由器的mac

getDetailedStateOf()  获取客户端的连通性

getHiddenSSID()  获取SSID 是否被隐藏

getIpAddress()  获取IP 地址

getLinkSpeed()  获取连接的速度

getMacAddress()  获取Mac 地址

getRssi()  获取802.11n 网络的信号

getSSID()  获取SSID 也就是wifi名称

getSupplicanState()  获取具体客户端状态的信息

呈上代码:

AndroidManifest.xml 注意权限

package="com.example.gsmcelllocation"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="9"

android:targetSdkVersion="14" />

//注意权限

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name="com.example.gsmcelllocation.WifiMac"

android:label="@string/app_name">

//注意权限

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name="com.example.gsmcelllocation.WifiMac"

android:label="@string/app_name">

wifimac.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/info"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="TextView" />

android:id="@+id/scrollView1"

android:layout_width="match_parent"

android:layout_height="wrap_content" >

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="周围wifi热点列表" />

android:id="@+id/wifi"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="。。。" />

WifiMac.xml

package com.feiyue.wifi;

import java.util.List;

import android.app.Activity;

import android.content.Context;

import android.net.wifi.ScanResult;

import android.net.wifi.WifiInfo;

import android.net.wifi.WifiManager;

import android.os.Bundle;

import android.widget.TextView;

public class WifiMac extends Activity

{

private WifiManager wifi;

TextView wifiText;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.wifimac);

TextView infoText = (TextView) this.findViewById(R.id.info);

wifiText = (TextView) this.findViewById(R.id.wifi);

infoText.setText(getInfo());

Thread t = new Thread(new Runnable()

{

public void run()

{

while(true)

{

runOnUiThread(new Runnable()

{

public void run()

{

obtainWifiInfo();

}

});

try{

Thread.sleep(500);

}catch(InterruptedException e){

e.printStackTrace();

}

}

}

});

t.start();

}

private String getInfo()

{

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

WifiInfo info = wifi.getConnectionInfo();

String maxText = info.getMacAddress();

String ipText = intToIp(info.getIpAddress());

String status = "";

if (wifi.getWifiState() == WifiManager.WIFI_STATE_ENABLED)

{

status = "WIFI_STATE_ENABLED";

}

String ssid = info.getSSID();

int networkID = info.getNetworkId();

int speed = info.getLinkSpeed();

String bssid = info.getBSSID();

return "mac:" + maxText + "\n\r"

+ "ip:" + ipText + "\n\r"

+ "wifi status :" + status + "\n\r"

+ "ssid :" + ssid + "\n\r"

+ "net work id :" + networkID + "\n\r"

+ "connection speed:" + speed + "\n\r"

+ "BSSID:" + bssid + "\n\r"

;

}

private String intToIp(int ip)

{

return (ip & 0xFF) + "." + ((ip >> 8) & 0xFF) + "." + ((ip >> 16) & 0xFF) + "."

+ ((ip >> 24) & 0xFF);

}

private void obtainWifiInfo() {

// 显示扫描到的所有wifi信息:

wifi= (WifiManager) getSystemService(WIFI_SERVICE);

if (wifi.getWifiState() == WifiManager.WIFI_STATE_ENABLED)

{

StringBuilder scanBuilder= new StringBuilder();

List scanResults=wifi.getScanResults();//搜索到的设备列表

for (ScanResult scanResult : scanResults) {

scanBuilder.append("\n设备名:"+scanResult.SSID

+"\n信号强度:"+wifi.calculateSignalLevel(scanResult.level,1001)

+"\nBSSID:" + scanResult.BSSID);

}

wifiText.setText(scanBuilder);

}

}

}

标签:wifi,String,BSSID,int,WIFI,获取,mac,WifiManager,本机

来源: https://blog.csdn.net/u011212411/article/details/9763135

Android的mac和BSSID,Android 获取本机的mac和wifi的BSSID(mac)以及其他信息相关推荐

  1. python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例

    这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...

  2. c语言获得本机mac地址,VC实现获取本机MAC地址的方法

    本文实例采用vc6.0运行环境,通过实例实现获得MAC地址的功能. 完整的实例代码如下: #include "stdafx.h" #include #include #includ ...

  3. c语言 通过sendarp 实现mac,C#通过SendARP()获取WinCE设备的Mac网卡物理地址

    ARP(Address Resolution Protocol) 即 地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议. SendARP(Int32 dest, Int32 host, ...

  4. QT获取本机的IP地址、mac地址、mask地址和广播IP(Ubuntu QT环境下实现)

    1.简介 用QT做网络通讯数据传输时,要先获取本机的网卡的IP地址.mac地址.mask地址和广播IP,以便创建socket进行通讯数据传输. 2.本博文主要封装函数: (1).getIP():获取本 ...

  5. golang网络编程:获取本机MAC地址

    对于IP地址可以表示一个网络连接,但是无法唯一标识一台主机,而MAC地址是主机网卡的物理地址,这个对于一台主机来说是不会改变的. func mac(){// 获取本机的MAC地址interfaces, ...

  6. go语言中获取本机sid、mac地址和cpuid的方法(windows系统下有效)

    在平常工作中可能会遇到需要获取本机mac地址或cpuid的场景,综合网上的办法,亲自试验总结如下: 1.如果只是要查本机sid地址,则很简单,直接在cmd命令窗口中输入命令: whoami /user ...

  7. linux编程获取本机IP地址的三种方法

    这是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡 ...

  8. C#中ManagementClass获取本机信息

    C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等. 获取本机MAC地址: /// <summary&g ...

  9. Shell 命令行获取本机IP,grep的练习

    Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...

  10. 获取本地电脑连接的所有WIFI密码(适合Windows 11/10/8/7)

    背景 如果你的心入职同事问你公司WIFI密码是多少,恰好这时你也忘记密码,用次方法可以实现得到WIFI密码. 如果你忘记现在在WIFI密码,也可以用此方法获取. 实现 1. 使用管理员权限打开 cmd ...

最新文章

  1. 【C++】Effective STL:50条有效使用STL的经验
  2. linux下的socket通信小程序分享——第三圣子
  3. 表扬几位积极的同学!
  4. JavaFX技巧2:使用Canvas API进行清晰绘图
  5. windows:QtCreator调用库的方式
  6. Html转快应用方法,卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片...
  7. Android笔记 定义意图过滤器intent- filter demo
  8. JS对象 字符串分割 split() 方法将字符串分割为字符串数组,并返回此数组。 语法: stringObject.split(separator,limit)...
  9. 贪心算法无重叠区间c语言,贪心算法之区间问题.md
  10. 安卓网页离线保存_Android之 -WebView实现离线缓存阅读
  11. 12-Qt5调用OpenCV4
  12. iOS 启动优化和安装包瘦身
  13. 【从零开始学习YOLOv3】3. YOLOv3的数据加载机制和增强方法
  14. 【XSY3657】因数分解(容斥,DP)
  15. Matlab常用命令汇总
  16. 如何快速在两台电脑之间传输大文件?
  17. contentprovider踩坑之路之Failed to find provider info for com.example.app.provider和cursor=null空指针问题
  18. 机器视觉光源案例锦集(一)
  19. iOS如何处理zip文件,解压或者压缩?
  20. Math重要方法(面试题)

热门文章

  1. 如何实现安卓二维码扫码功能
  2. Keras文本生成CNN实现
  3. PR片头模板|光线扭曲时空穿梭LOGO片头视频模板
  4. impdp 并行_EXPDP和IMPDP数据泵进行导出导入的方法
  5. oracle impdp导入full,使用数据泵impdp导入数据
  6. 「硬见小百科」什么是自举电路
  7. 工程项目电子签场景:施工方案-图纸-质评单-档案归档全面数字化
  8. DEJA_VU3D - Cesium功能集 之 034-可视域分析(纯前端)完整版
  9. PHP判断用户浏览器是pc、Android、IOS、微信、QQ、安卓、苹果源码
  10. win10下载配置Maven到本地