问题标签 [android-trafficstats]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1494 浏览

android - 如何从特定线程获取流量统计信息

在 android 上,如何使用TrafficStatsTrafficStatsCompat获取当前进程中特定线程的总 TX 字节数?API暗示这是可能的,但我无法弄清楚。

0 投票
3 回答
4611 浏览

java - Android 手机使用历史 NetworkStatsManager

我正在为 Android 6.0 制作应用程序,我想使用新类 NetworkStatsManager 来获取移动数据使用情况。

我在清单中添加了我需要的所有权限并需要权限运行时。

当我调用该方法时:

返回正确的 WIFI 使用值。

但是如果我用 TYPE_MOBILE 替换 TYPE_WIFI,结果总是 0。

0 投票
1 回答
1553 浏览

android - TrafficStats.getMobileRxBytes() 和 TrafficStats.getMobileTxBytes() 在 Nexus 5x 中总是返回 0

我正在尝试使用 TrafficStats 获取移动数据使用情况。

例子:

mobileDataUsage = TrafficStats.getMobileRxBytes() +TrafficStats.getMobileTxBytes()

totalUsage = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes()

在少数设备中,它工作得非常好。在Nexus 5X中,我得到了 totalUsage,但 mobileDataUsage 始终为 0,TrafficStats.getMobileRxBytes()并且TrafficStats.getMobileTxBytes()始终返回 0。

0 投票
1 回答
805 浏览

android - 使用 TrafficStats 的网络连接速度

我正在开发一个使用互联网连接来工作的 android 应用程序。我想使用一个red for poor连接yellow for fairgreen for good强度指示器来监控网络速度,并将其显示在状态栏上,以便用户可以知道所有的网络速度使用该应用程序的时间。我遇到了TrafficStats库,我将在其中获得否。使用TrafficStats.getMobileTxbytes()和没有传输的字节数。接收到的字节数,TrafficStats.getMobileRxbytes()但现在我有一个查询要处理。

  • TrafficStats 将提供基于当前数据传输的网络速度。因此,如果在过去 10 秒内没有传输任何内容,它将返回 0kbps 速度,并且我们的指示灯将是红色的,而实际网络很好,它应该是绿色的。

我只是 Android 的新手,在这里想要一些见解。

还有其他解决这个问题的好方法吗?

0 投票
1 回答
437 浏览

android - 获取特定时间段内的数据使用情况

我需要获取数据量,即一个月内的互联网使用量。我一直在做一些研究并找到了TrafficStats课程。然而,这似乎令人困惑。getUidRxBytes()和有什么区别getUidRxPackets()。如何获取一个月内使用的数据?

0 投票
1 回答
2838 浏览

android - NetworkStatsManager 的 queryDetailsForUid() 方法总是返回所有应用程序的旧网络使用情况

我编写了一个代码来获取网络使用情况,但是 queryDetailsForUid(int networkType, StringsubscriberId,long startTime, long endTime, int uid) 这个方法总是返回旧数据。如何使用NetworkstatsManagerAPI 获取更新的数据?

0 投票
2 回答
479 浏览

android - 如何获取 1 个月的 GPRS 移动数据使用量?

我对此进行了很多搜索。到处都找到了相同的代码,部分解决了这个目的。正如 API 文档所说,一旦设备重新启动,它就会重置计数器。有时即使没有重新启动,计数器也会重置。下面是代码

但是我想不出任何方法来获取特定日期或一个月的这些数据?请帮忙。任何指针将不胜感激。谢谢。

0 投票
0 回答
925 浏览

android - 网络状态变化监听器

我需要听网络的变化(连接/断开)(特别是移动数据)。我知道使用广播接收器和 ConnectivityManager 来了解连接类型的方法。

但是,在广播接收器中,当我想收听正在断开的网络时,连接切换到新网络后会收到一个意图。

我为什么要这样做?
我想获取移动数据的数据统计信息,即通过 2g/3g/4g/LTE 传输和接收了多少数据。我正在使用 TrafficStats.getMobileRxBytes() 来获取接收到的数据,但与文档所述相反,当您未连接到移动数据时,此方法返回零。正如您在此处看到的,不仅我自己,而且许多人都面临过这个问题。

我知道有一种解决方法可以查看 Play Store 上的应用程序,以提供每天使用的数据量。

另外,如果我记录用户连接到移动数据时每秒使用的数据,那么我认为这对电池来说不会太好。

请帮我解决这个问题。

谢谢你

0 投票
1 回答
1288 浏览

android - NetworkStatsManager.queryDetailsForUid 未获得与 TrafficStats 相同的值

我正在将新NetworkStats类与TrafficStats测量网络接口和给定应用程序(pex Chrome)的流量进行比较

由于TrafficStats自设备启动以来具有值,我正在执行的测试是这样的:

  1. 重启手机。
  2. 打开铬。
  3. 下载 10 mb 数据(通过 WiFi)。

得到的数据TrafficStats是这样的:

我授予的权限NetworkStats和我获得的值是:

获取数据的代码NetworkStats如下:

在哪里getDataFromBucket

我在某处读到桶是从两个小时开始的,所以我添加了以下代码:

但是 chrome 的数据仍然为 0,因为wifiBucketForApp并且mobileBucketForApp没有任何存储桶。

如果我设置bootTime为一天的开始(在我的国家是 18:30),我将获得:

有人知道为什么我没有获得与Chrome 应用程序TrafficStats从设备启动以来相同的值吗?NetworkStatsManager

0 投票
2 回答
1002 浏览

android - getUidTxBytes(int uid) 在 android 6.0 中总是返回 0

我正在尝试获取所有应用程序的网络流量统计信息。我只是打印设备中每个应用程序的总网络流量。该代码在 android 4.4 和 5.1 设备中运行良好,但在 android 6.0 设备中它总是为所有应用程序返回 0。任何人都可以告诉我为什么会在 android 6.0 设备中发生这种情况。

这是我的AndroidManifest.xml