当前位置: 首页 > 面试题库 >

如何以编程方式获得链接速度?

阎鸿煊
2023-03-14
问题内容

我正在开发一个应用程序,除了一件事,它几乎完成了:我不知道如何提高链接速度并将其放置在状态栏中。我是Java新手,所以如果有人可以帮助我,我将不胜感激。PS对不起,英语不好。


问题答案:

如答复者所建议,您的问题不是很清楚。您 可能指的是链路连接速度 (即,具有良好的信号接收Wifi时高达54 Mbps或具有全速HSDPA时高达7.2
Mbps),具体取决于:

  • 一次使用的网络接口 。某些电话允许网络共享,这意味着您可以同时激活Wifi和移动数据链路(GPRS / 3G / HSDPA),也可以同时启用自动切换功能(如果您的Wifi连接断开,则电话将在激活后自动切换到移动网络)。
  • 一次协商连接速度 。取决于信号质量/运营商网络配置(某些设备的最大速度受到限制)/移动数据合同(通常超过每月带宽配额,这意味着默认为GPRS速度)。

在这种情况下,恐怕没有标准的Java API方法知道它,但是Android API需要所需的功能:

  • 对于WiFi链接速度,请检查WifiInfo.getLinkSpeed()
  • 对于移动数据链接,恐怕您只能检查TelefonyManager.getNetworkType()以确定当前的移动数据链接类型。然后,您应该根据链路类型来接近实际速度(例如,对于GPRS最高128 kbps,对于EDGE最高236.8 kpbs,对于3G最高2 Mbps,对于HSDPA最高7.2 Mbps)。考虑到 这仅仅是一个近似 。您可能使用HSDPA进行联网,但运营商将最高速度限制为2 Mbps。

另一种情况下,您参考的是当前(下载/上传)数据链接速度,
这仅在较高级别上可用,实际上不是在测量链接速度,而是在电话和服务器之间的速度,它不仅可以由您确定。链接速度,还取决于许多其他因素(电话与服务器之间,服务器本身与服务器之间的所有链接等)。您只需测量“
HTTP级别速度”即可,这意味着HTTP数据速度(为数据包节省了开销流量),因为通常在每种情况下都仅支持HTTP连接(您的运营商可能会将您隐藏在可过滤除HTTP之外的所有内容的代理后面)交通)。

如果您使用的是8级API,那么还可以使用一种有趣的功能,称为TrafficStats。这样一来,您就可以知道手机通过移动数据链路交换的低电平发送/接收的数据包,它可能仅提供您要查找的信息(使用这些测量值和经过的时间,您可以轻松地测量当前/平均使用的数据链接速度)。



 类似资料:
  • 问题内容: 我正在编写一个报告本地计算机上网络设备属性的应用程序。我需要mac地址,mtu,链接速度和其他一些信息。我为此使用udev。我已经弄清楚了如何获取mac地址和mtu,但还没有弄清楚链接速度。我可以从终端使用ethtool来获取它,但是我需要一种以编程方式获取它的方法。 有谁知道我如何获得udev或其他库的链接速度属性? 问题答案: 您需要使用ioctl()调用。在LinuxJourna

  • 我们在生产中有一个spring应用程序。这不是Spring靴。我找到了这篇关于如何在非Spring-Boot应用程序中使用Spring-Boot-Adactor的帖子。 然而,对我们的要求是聚合来自/metricsendpoint的数据,并对其进行一些分析,报告一个状态指示器。 例如,我们可以使用堆参数来指示应用程序的状态-致命、警告或健康。 这只是一个例子。我们的要求更复杂。事实上,我们已经有了

  • Android将屏幕尺寸定义为普通的大屏幕等。 它会自动选择适当文件夹中的静态资源。我需要这个数据关于当前设备在我的java代码。DisplayMetrics仅提供有关当前设备密度的信息。没有关于屏幕大小可用。 我确实在grep代码中找到了屏幕大小枚举,但是这对我来说似乎不适用于4.0 SDK。有办法得到这些信息吗?

  • 问题内容: 我想从受监视的应用程序内部以编程方式获得等效的输出。我看到可以通过HotSpot诊断Bean触发二进制堆转储,但是我看不到如何获取直方图数据。可能吗 ? 问题答案: 这可能是不是最好的例子/代码,但看看这个 (我认为这仅适用于Hotspot JVM)

  • 问题内容: 基本上,我想获取python解释器的句柄,以便可以传递脚本文件来执行(从外部应用程序执行)。 问题答案: 这适用于Linux和Windows: Python 3.x Python 2.x

  • 问题内容: 如何通过UIViewController扩展的任何类以编程方式创建选项卡: 问题答案: 更新SWIFT 5 如何以编程方式创建的一个示例如下所示: 首先,我们创建标签栏界面的每个标签的内容。对于此示例,我们仅创建一个非常简单的示例。 现在,: 我们创建了要显示在标签栏中的的新实例。然后,我们为创建的每个实例创建一个图标,然后创建一个数组,其中包含所有为标签栏界面的每个标签指定内容的数组