如何获取已连接 WiFi android 的信号强度?

2023-11-26

我想获取与我的设备连接的 wifi 的信号强度。这可能很容易。但我是初学者。这是作业。如何获得?

我尝试了这段代码。但这不起作用。

    registerReceiver(new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        int state = wifi.getWifiState();
        if(state == WifiManager.WIFI_STATE_ENABLED) {
            List<ScanResult> results = wifi.getScanResults();

            for (ScanResult result : results) {
                if(result.BSSID.equals(wifi.getConnectionInfo().getBSSID())) {
                    int level = WifiManager.calculateSignalLevel(wifi.getConnectionInfo().getRssi(),
                            result.level);
                    int difference = level * 100 / result.level;
                    int signalStrangth= 0;
                    if(difference >= 100)
                        signalStrangth = 4;
                    else if(difference >= 75)
                        signalStrangth = 3;
                    else if(difference >= 50)
                        signalStrangth = 2;
                    else if(difference >= 25)
                        signalStrangth = 1;
                    tv.setText(tv.getText() + "\nDifference :" + difference + " signal state:" + signalStrangth);

                }

            }
        }
    }
}, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));

我也尝试过这段代码。但这也行不通。

    int numberOfLevels = 5;
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);

希望它有效..

public void onReceive(WifiManager wifiManager) {
                      int numberOfLevels=5;
                      WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                      int level=WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
                      System.out.println("Bars =" +level);
                }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取已连接 WiFi android 的信号强度? 的相关文章

随机推荐

  • php中数组的右旋转

    例如我有一个数组 a 1 2 3 4 5 由此 a 如何获取最后一个并将其设置为第一个 5 1 2 3 4 我如何将最后两个数组变成这样 4 5 1 2 3 您可以结合使用array pop which pops数组的最后一个元素 以及ar
  • 通过 python 在脚本中使用密码 ssh 到远程计算机

    我正在使用远程机器 每次我需要验证文件更新时间时 我都必须使用 ssh 并且有多个脚本可以通过 ssh 连接到远程计算机 我在网上查了一下 但找不到符合我要求的 我试图找到一个使用 ssh 的 python 脚本 并且密码也在脚本中 因为我
  • 始终在 jQuery 自动完成中显示特定选择,即使它与输入不匹配

    我有一个 jQuery 自动完成 jquery ui 版本 1 8 我可以在其中输入一个名称 如果可用 我希望用户从列表中选择一个名称 因为这些是我们数据库中的所有者名称 但是 有时他们需要添加新的所有者名称 在这种情况下 我希望他们从自动
  • 为证书提供 EC 私钥以在 HttpClient C# 中使用

    我有一个可以使用 X509Certificate2 类读取的证书 如下所示 X509Certificate2 证书 new X509Certificate2 certificate pem 但我也有一个EC私钥 这是它的文件内容 BEGIN
  • 如何获取以毫秒为单位的时间差

    我无法解决这个问题 所以我希望有人能提供帮助 我有一首歌曲 歌曲长度以毫秒为单位 我还有以 DATETIME 格式播放歌曲的日期 我想做的是找出歌曲播放时间还剩多少毫秒 Example tracktime 219238 dateplayed
  • requiredFieldValidator 要求用户单击两次

    我有一个简单的网络表单 其中有一个文本框和一个连接到它的RequiredFieldValidator 当触发RequiredFieldValidator错误时 用户必须单击提交两次才能发布表单 第一次单击会清除错误 第二次单击实际上会触发按
  • Java 3 颜色渐变

    我有一个JPanel 我想在其中绘制渐变 我有下面的代码 但只绘制了 2 种颜色的渐变 我想添加第三个 但不知道如何 我想要的是将面板的左上角设置为白色 右上角设置为红色 两个底角设置为黑色 为了实现这一目标 我必须做什么 看起来像这样 p
  • OpenCV Java 将 VideoCapture 与失败的文件绑定

    我使用 OpenCV 2 4 8 和提供的 Windows 64 位 Java jar 到目前为止 我一直在当前环境中充分利用 OpenCV 我无法使用打开视频文件VideoCapture类但是网络摄像头工作正常 以下内容按预期工作vide
  • 从 SASS/LESS 文件中重构和删除未使用的 CSS

    我正在做一个大的工作单页应用程序 backbonejs和rails 它使用 LESS 作为 CSS 预处理器 并且生成的 css 文件已经增长到这样的程度 对于 IE 我们必须将其分成 3 个文件http blesscss com 尽管有工
  • Spring webflux:将http重定向到https

    如何在 spring webflux 中配置 http gt https 重定向 我需要全部http请求被重定向到https 据我了解任何http请求应该有301http 状态响应更改为 http gt https 没有找到任何相关信息文档
  • 需要更快的方法来获取缓冲图像的每个像素的 RGB 值

    获取每个像素的RGB值的最快方法是什么BufferedImage 现在我使用两个来获取 RGB 值for循环如下面的代码所示 但获取这些值花费的时间太长 因为嵌套循环对我的图像总共运行了 479999 次 如果我使用 16 位图像 这个数字
  • 对 HTML 文档进行分页以便使用基于 WebKit 的浏览器进行打印

    Internet Explorer 有打印模板 engine 我可以在哪里使用DEVICERECT元素来表示物理页面 然后使用LAYOUTRECT元素作为矩形视图 使 HTML 文档流入页面并驱动分页 这可以防止行在相邻页面之间的中间被切断
  • 免费、便宜或开源的 UML 和类似 Visio 的工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我们正在寻找免费 廉价或开
  • 在 PHP 中将 unix 时间戳转换为人类可读的日期?

    我有来自 PHP 的时间戳值 1188604800000 当我将时间格式化为人类可读的格式时 如下所示 date m d Y 1188604800000 它打印 05 21 39635 如果我将数字放入在线 Unix 时间戳转换器中 我会得
  • 两个(UIWebView 或 WKWebView)单独的 cookie 存储

    我想在不同的地方登录同一网站的多个帐户webView 例如我有Tab Bar Controller其中包含三个视图控制器和每个视图控制器包含webView 例如我嵌入stackoverflow网址为webView在每个班级 用户如何使用这三
  • 调用 platformBrowserDynamic().bootstrapModule(@NgModule) 返回 ASSERTION ERROR 传入的类型不是 NgModuleType,它没有 'ɵmod' 属性

    我对 platformBrowserDynamic bootstrapModule app app module 调用有问题 错误消息是 未捕获错误 断言错误 传入的类型不是 NgModuleType 它没有 mod 属性 但是我可以在调试
  • 如何将两个CSS类应用到单个元素[重复]

    这个问题在这里已经有答案了 我可以在一个课程中申请2个课程吗div or span或任何 HTML 元素 例如 a class c2 aa a 我尝试过 就我而言c2没有得到应用 我怎样才能同时申请两个课程 1 在class属性内使用多个类
  • 在 python 中创建圆形条形图

    我有兴趣在我的项目中使用圆形条形图可视化 但不知道如何用 Python 生成它 请参阅下面的 圆形条形图 含义的示例 数据将以 pandas 系列的形式出现 下面的虚拟示例模糊地反映了情节 A 33 B 62 C 56 D 70 任何想法
  • Datadog Grok 解析 - 从嵌套 JSON 中提取字段

    是否可以提取嵌套在日志中的 json 字段 我一直在研究的示例 thread 191555 app main cid 2cacd6f9 546d 41ew a7ce d5d41b39eb8f uid e6ffc3b0 2f39 44f7 8
  • 如何获取已连接 WiFi android 的信号强度?

    我想获取与我的设备连接的 wifi 的信号强度 这可能很容易 但我是初学者 这是作业 如何获得 我尝试了这段代码 但这不起作用 registerReceiver new BroadcastReceiver Override public v