首页 > 其他分享 >Android ping域名示例代码

Android ping域名示例代码

时间:2024-12-04 10:44:16浏览次数:4  
标签:return val 示例 ping networkTimeResult Pair Android line

private val regex = Regex("""time=([\d.]+)""")

    /**
     * @return Pair(Boolean,Int) boolean为ping是否成功 int为ping的具体数值
     */
    private fun ping(host: String): Pair<Boolean, Int> {
        val command = "ping -c 1 -i 0.2 -W 2 $host"
        var networkTimeResult = -1
        try {
            val process = Runtime.getRuntime().exec(command)
            val reader = BufferedReader(InputStreamReader(process.inputStream))
            var line = reader.readLine()
            while (line != null) {
                if (line.contains("time")) {
                    val matchResult = regex.find(line)
                    val networkTime = matchResult?.groupValues?.getOrNull(1)
                    if (networkTime != null) {
                        //四舍五入
                        networkTimeResult = networkTime.toDouble().roundToInt()
                        return Pair(networkTimeResult != -1, networkTimeResult)
                    }
                }
                line = reader.readLine()
            }
            return Pair(false, -1)
        } catch (e: Exception) {
            e.printStackTrace()
            return Pair(false, -1)
        }
    }

PS:补充不同平台上的ping命令,不过注意,上面代码的正则可能不适用window,可能要改下

//linux或mac系统 (Android也视为linux)
val cmd = "ping -c 1 $host"

//window系统
val cmd = "ping -n 1 $host"

标签:return,val,示例,ping,networkTimeResult,Pair,Android,line
From: https://www.cnblogs.com/stars-one/p/17480912.html

相关文章

  • RK3566 RK3568开发板Android11屏蔽开机启动提示,优化启动时间
    在Android11系统下开机启动会出现下图“平板电脑正在启动”字样,屏蔽可优化开机启动时间,本文教大家如何通过修改代码屏蔽开机提示。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发......
  • 9.在 Vue 3 中使用 OpenLayers 加载 Bing 地图示例(多种形式)
    前言随着地理信息技术的不断发展,地图应用在现代项目中的需求也日益增长。Bing地图提供了高质量的地图服务,包括矢量、卫星和混合标记等多种类型。OpenLayers是一款强大的开源地图框架,能让我们在项目中轻松实现地图加载与交互。本文将介绍如何在Vue3项目中使用OpenLayers......
  • 8.在 Vue 3 中使用 OpenLayers 加载天地图示例(多种形式)
    前言OpenLayers是一个强大的开源地图框架,可以轻松实现地图加载与操作。而Vue3则通过CompositionAPI提供了更加简洁和灵活的开发体验。本文将介绍如何在Vue3中结合OpenLayers实现对天地图的加载,包括矢量地图、卫星地图以及中文和英文标记等多种形式。环境准备在......
  • android手机的微信H5弹出的软键盘挡住了文本框,如何解决?
    Android微信H5页面中,软键盘弹出挡住输入框的问题,是一个比较常见且棘手的问题。核心原因在于微信内置浏览器对window.resize事件的处理机制与常规浏览器不同,以及Android系统本身的碎片化。以下是一些解决方案,建议结合实际情况选择和组合使用:1.使用scrollIntoView()方......
  • android 蓝牙耳机杂音和耳机兼容性问题是什么原因?如何分析和解决?
    原因分析:硬件:射频干扰(WiFi/其他蓝牙设备)耳机芯片组不匹配天线设计问题 软件:蓝牙协议栈兼容性音频编解码配置不当LinkController参数不合适 排查步骤:抓取蓝牙log:adbshellbtsnoopstart#复现问题adbpull/data/misc/bluetooth/logs/btsn......
  • 【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
    问题描述在Azure门户(Createnewuser-MicrosoftAzure由世纪互联运营)中添加新用户,如果想通过代码来实现,有没有示例代码参考呢?问题解答示例代码fromazure.identityimportAzureAuthorityHostsfromazure.identity.aioimportClientSecretCredentialfromkiota_auth......
  • Android系统资源管理与电池优化策略详解
    Android系统作为全球最流行的移动操作系统之一,其性能优化一直是开发者和用户关注的焦点。在有限的硬件资源下,如何高效地管理资源并延长电池续航,是提升用户体验的关键。本文将聚焦于Android系统的资源管理策略,特别是内存管理、进程管理,以及电池优化方面,进行深入探讨。资源管理策略......
  • Android 14.0 kenel和frameworks中修改ram运行内存的功能实现
    1.前言在14.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,在产品后续订单中,产品提出要提高硬件配置,但是硬件方面已经定板,项目时间比较仓促,所以来不及对硬件重新定制,就需要软件方面在ram运行内存的容量大小方面作假,修改ram真实的大小容量,所以就需要在kenel驱动部......
  • 关于在Android Studio上实现的菜单功能未显示的解决方法
    概述 最近在学习菜单功能的时候,发现已经全部按照书本上要求来实现了,却怎么也没显示出菜单来。在互联网上查找许久,终于发现是因为在我的AndroidStudio上创建的项目自带主题,将主题上里“.NoActionBar”删除即可正常显示菜单栏。具体操作如下在项目视图里选择“app=>res=>val......
  • CS61B srping 2018 project00 https://sp18.datastructur.es/
    GettingtheSkeletonFiles,网站上应该有仓库地址,这个也行,https://gitee.com/heqilaoge/skeleton-sp18。拉下来找到proj0,就能开始作业。可以不使用IDE。2.ThePlanetClassandItsConstructor创建Planet类publicclassPlanet{publicdoublexxPos;publicdo......