本博文为本人学习Android开发以来第一次实例编写。点击一个按钮,获取当前的wifi名称以及接受的信号强度。

目录

代码

定义界面

mainactivity

需要的权限

效果

参考资料


代码

首先创建一个工程文件命名为WifiTest

定义界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/wifi_rssi"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="WiFi RSSI"android:textAllCaps="false"/></LinearLayout>

mainactivity

package com.example.wifitest;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity {String wifi_name;int wifi_rssi;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//定义按键实例Button button1=(Button) findViewById(R.id.wifi_rssi);//定义按钮点击事件button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//在此处定义获取WIFI的信号与名称,然后通过Toast显示出来WifiManager wifiManager= (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);//获取wifi服务assert wifiManager != null;WifiInfo wifiInfo=wifiManager.getConnectionInfo();wifi_name=wifiInfo.getSSID();//华为手机解决int networkID=wifiInfo.getNetworkId();List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();for (WifiConfiguration wifiConfiguration:configuredNetworks){if (wifiConfiguration.networkId==networkID){wifi_name=wifiConfiguration.SSID;break;}}//                //8.0之后,再这样获取,拿到的就是<unknown ssid>了
//                ConnectivityManager ctm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
//                NetworkInfo networkInfo = ctm.getActiveNetworkInfo();
//                String wifi_name = networkInfo.getExtraInfo();wifi_rssi=wifiInfo.getRssi();Log.d("wifiInfo", wifiInfo.toString());Log.d("SSID",wifiInfo.getSSID());//通过Toast输出Toast.makeText(MainActivity.this, "rssi:"+wifi_rssi+"---wifiId:"+wifi_name,Toast.LENGTH_SHORT).show();}});}//***********定义一系列函数************
//    //获取wifi的名称
//    private String getConnectWifiSsid() {
//        WifiManager wifiManager= (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);//获取wifi服务
//        WifiInfo wifiInfo=wifiManager.getConnectionInfo();
//    }}

需要的权限

获取WIFI信息状态的权限

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

获取网络状态改变的权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.wifitest"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

效果

参考资料

https://mp.weixin.qq.com/s?__biz=MzIzMzk1MzMxMA==&mid=100000021&idx=1&sn=8be982e2e209af5ac5936ea3cd48d6e1&chksm=68fc80645f8b0972d31952efe9672194322d0e1fa04db657e0bcfa2cb3fdf26c721a36112f23&mpshare=1&scene=1&srcid=&sharer_sharetime=1588991015172&sharer_shareid=a02329314a01e92e427ef82703762420&key=f01754a5c69cbc04e24e431562058769dd9b63f70372315077ccf99e09b6859f0d389fdfa1be90f25e32db5b09428952f4e5ccec2f6154e9c1e41f06d13d0cf4b1965c46a35644be91281fe574bd3f0f&ascene=1&uin=MTIxMjY0NjM2Mw%3D%3D&devicetype=Windows+10+x64&version=62090070&lang=zh_CN&exportkey=A84BktrA9FlsDV8LC0kEbfc%3D&pass_ticket=bTX3SpfctiytmpVhJjPbQDkQlYp%2BLiI8P7FMq1Fqsmx61bpTqomwXOY%2BU4Fy%2BcWA

Android学习笔记之——获取WIFI的RSSI以及名称相关推荐

  1. android学习笔记之——获取SD卡及手机ROM容量

    继续android学习之旅,今天通过一个小例子,来获取SD卡的容量和手机ROM的容量,具体代码如下: package com.urovo.sdcardspace;import java.io.File ...

  2. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  3. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  4. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  5. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  6. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  7. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  8. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

  9. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

最新文章

  1. java hashset应用_三.java集合的应用
  2. 通过反射给属性赋值代码示例
  3. 程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)
  4. python替换文件内容_Python实现替换文件中指定内容的方法
  5. react 遍历对象_React 和 Vue 之间的相爱相杀
  6. 建议考事业编吗?为什么?
  7. Gartner 2020年十大战略科技发展趋势:边缘赋能、区块链、超自动化、人工智能安全等...
  8. 【数学建模】基于matlab GUI最小二乘法曲线拟合【含Matlab源码 492期】
  9. Sublime Text for Mac如何支持GBK编码
  10. Foxmail7.0.1.86升级有风险
  11. 美团网2014校园招聘笔试题(长沙站)
  12. 74HC245芯片简析
  13. DSS 部署环境需求清单
  14. 软件测试职业规划:发展方向多元化
  15. 谈谈我当韭菜的投机经历
  16. 【绘画练习】使用Ipad+precreate绘制插画
  17. Google Earth Engine ——重采样过程中的错误
  18. python积木编程软件下载_积木编程软件-积木编程官方版下载-红软网
  19. 榆熙教育:拼多多平台考核如何达成系统考核指标
  20. 串口通信——接收串口数据并处理(C语言)

热门文章

  1. 一份热乎乎的滴滴前端面经
  2. 如何使用Dinktopdf在.net core项目里将Html转成PDF
  3. 【原创分享】窗口置顶小工具
  4. SPOJ 25000 BOKAM143SOU - Checking cubes(dp)
  5. 交换机ACL访问控制列表举例说明
  6. 【Xilinx】如何用sdk编译vcu-qt
  7. java之雪花飘落效果的实现(撩妹小程序)
  8. Ubuntu下类似 Mac下的 Quicksilver, Alfred 的快捷键工具
  9. 保研复习(1)——数据库
  10. 设置linux系统时间为北京时间