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

2023-12-23

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

float totalRxBytes = (float)TrafficStats.getTotalRxBytes()/(float)1048576;  // Received
float totalTxBytes = (float)TrafficStats.getTotalTxBytes()/(float)1048576;  // Sent
float mobRxBytes = (float)TrafficStats.getMobileRxBytes()/(float)1048576;
float mobTxBytes = (float)TrafficStats.getMobileTxBytes()/(float)1048576;
float wifiRxBytes = totalRxBytes - mobRxBytes;
float wifiTxBytes = totalTxBytes - mobTxBytes;  

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


首先,TrafficStats.getTotalRxPackets() https://developer.android.com/reference/android/net/TrafficStats.html#getTotalRxPackets():

返回自设备启动以来接收到的数据包数。

同样是与TrafficStats.getTotalTxPackets() https://developer.android.com/reference/android/net/TrafficStats.html#getTotalTxBytes()

该类对于获取月份统计数据没有帮助。

我建议使用 API 23 的解决方案:

网络统计管理器 https://developer.android.com/reference/android/app/usage/NetworkStatsManager.html

此类可以获取每个设备或每个包的统计信息。对您特别有帮助的是功能:

NetworkStatsManager.querySummaryForDevice() https://developer.android.com/reference/android/app/usage/NetworkStatsManager.html#querySummaryForDevice(int,%20java.lang.String,%20long,%20long)

期望测量开始时间作为第三个参数,结束时间作为第四个参数。

示例项目可以找到here https://github.com/RobertZagorski/NetworkStats。它显示了如何获取访问权限网络统计管理器 https://developer.android.com/reference/android/app/usage/NetworkStatsManager.html请求适当的运行时权限。

该解决方案仅适用于 API 23+。

如果你真的想使用交通统计 https://developer.android.com/reference/android/net/TrafficStats.html然后创建一个服务,该服务将得到以下结果TrafficStats.getTotalRxPackets() https://developer.android.com/reference/android/net/TrafficStats.html#getTotalRxPackets()每小时计算差异,并将其保存在数据库中每天的不同行中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取1个月的GPRS移动数据使用量? 的相关文章

  • Android:如何暂停和恢复可运行线程?

    我正在使用 postDelayed 可运行线程 当我按下按钮时 我需要暂停并恢复该线程 请任何人帮助我 这是我的主题 protected void animation music6 music4 postDelayed new Runnab
  • 为什么不能在 Fragment 中使用 ViewPager?它实际上是

    有信息无法使用ViewPager在一个Fragment在许多来源中 例如 Android 开发者繁忙编码指南 http commonsware com 作者 Mark Murphy 或者类似的帖子this https stackoverfl
  • Android Camera.takePicture() 有时不返回?

    我正在编写一个Android 拍照应用程序 该代码在 onPreviewFrame byte data Cameracamera 中从预览中获取帧后进行一些处理 问题在于 android hardware Camera 的函数 takePi
  • 我无法再在后台应用程序中接收任何 FCM 消息

    当应用程序处于后台时 我无法再在应用程序中接收任何数据消息 请注意 直到最近它在我的应用程序中都运行良好 也许在我的开发环境最近更新后它停止工作了 我不能说 所以我尝试用快速入门 android 项目 https github com fi
  • 无法在 Android Studio 中导出签名的 APK

    当我使用keytool list keystore path to keyfile jks并提供我的密码 我可以看到那里的条目 但是当我在尝试使用相同的密码生成签名的 APK 时使用相同的密码时 我收到错误 无法加载密钥库 密钥库被篡改 或
  • relativelayout导致动画不起作用?

    我有一个活动 其布局仅包含一个 VideoView 这是 XML
  • 如何使用 RecyclerView 创建此布局?

    我正在尝试使用这种类型的布局创建回收器视图 这些项目是字符串 可以以不同的大小出现 我不知道每行中有多少项目 我可以使用 StaggeredGridLayoutManager 来做到这一点吗 该图像只是一个假示例 每行可以有更多项目 您可能
  • 如何在Android中的DataBinding的ViewModel类中获取R.string

    我目前正在使用databinding对于我的 Android 应用程序项目 我想设置error留言在我的CustomTextView from R string txtOldPassWordError并从另一个名为的类中进行设置ViewMo
  • 更改语言 Flutter 的按钮

    我正在 Flutter 中构建一个应用程序 到目前为止 我正在使用 JSON 国际化 其中应用程序的语言基于用户手机中默认的语言 它工作得很好 但我想给用户有机会在不更改手机系统语言设置的情况下更改语言 只需单击按钮 然后应用程序即可更改语
  • 使用 DataBinding 测试片段时膨胀类 Fragment 时出错

    有人可以帮我解决这个问题吗 在我的测试中 我想检查登录按钮是否显示在起始页上 今天我已经为这个错误苦苦挣扎了一段时间 我不知道应该如何解决它 我在这里错过了什么 也许这个问题与这个问题有些相似 Espresso 测试失败 并显示 java
  • Android 和 Google 地图内部片段以及其他控件和 viewpager

    我是android编程新手 我有一个带有 3 个页面 片段 的小应用程序 使用 pageradapter 和 viewpager 在它们之间滑动 其中一个页面包含复选框 和其他控件 和地图 我的问题是程序在启动时崩溃 Fragment co
  • Toast 消息消失后​​完成活动吗?

    有谁知道 是否有可能对 Toast 消息执行某些操作 在我的情况下完成活动 将被关闭 您只需创建一个Thread持续时间只要Toast显示 然后您就可以完成您的Activity public void onCreate Bundle sav
  • 如何在 60 分钟后删除共享首选项

    我想存储登录数据 但希望在 60 分钟后删除该数据 执行此操作的正确方法是什么 在这 60 分钟内可以关闭 停止 打开应用程序 我不想使用内部数据库 这是我的访问代码SharedPreferences sharedpreferences g
  • Expresso 的 Android 测试首选项片段

    我在通过 Expresso 测试我的代码时遇到问题 我写了这段代码 public class SettingsActivity extends Activity Override protected void onCreate Bundle
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 使 Recyclerview 固定高度并可滚动

    已解决以下检查答案 所以我试图为我的 Android 应用程序创建评论功能 我想在 recyclerview 中显示评论 然后在 recyclerview 下方有一个按钮和文本视图来添加评论 我想让 recyclerview 具有一定的高度
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • 如何正确处理 ListView 内的 Android EditText 输入?

    在我的应用程序中 我有一个在 a 中添加 删除 编辑记录的活动SortedMap 该活动作为以下活动的延伸实施ListActivity 我已经实现了自定义ArrayAdapter对于收藏品 Every ListView项目 对应于基础记录
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 如何用LoaderManager自动重新查询

    我有一个应用程序显示来自 SQLite DB 的数据 并且数据不断变化 所以显然 我认为我应该使用 LoaderManager 来显示数据 我读过一些关于将 LoaderManager 与 SQLite 结合使用的内容 然后看到了亚历克斯

随机推荐

  • 为什么重载方法没有被调用?

    我认为被调用的方法是在运行时决定的 或者我错过了什么 示例代码 class Program static void Main string args var magic new MagicClass magic DoStuff new Im
  • 在 Cocoa 中使用 autorelease 的成本是多少?

    大多数苹果文档似乎都避免使用自动释放对象 特别是在创建 gui 视图时 但我想知道使用自动释放对象的成本是多少 UIScrollView timeline UIScrollView alloc initWithFrame CGRectMak
  • exoplayer播放器错误无法连接到hls链接

    我有一个 hls 链接 可以使用 mpv 正常播放 但在 exoplayer 中出现此错误 PlayerError com google android exoplayer2 ExoPlaybackException com google
  • IE 9 和 10 产生意外且不一致的 MediaError

    我们有一组 HTML 块 比如说大约 50 个 它们被迭代地解析并具有Audio动态添加的对象 var SomeAudioWrapper function name this internal player new Audio this i
  • VBA 根据输入值查找下一列

    在我现在尝试编写的程序中 我采用两列数字并对它们进行计算 在用户告诉我之前 我不知道这两列位于哪里 他们在我的代码所在的工作簿的单元格中输入列值 例如 如果用户输入 A 和 B 作为所有信息所在的列 我可以根据这些值执行计算 同样 如果他们
  • Visual Studio 下的 string::swap 复杂性

    The 参考参数 http en cppreference com w cpp string basic string swap页面说的是std basic string swap它具有恒定的复杂性 我认为这意味着无法复制内容 只能交换指针
  • JavaScript HtmlCollection 循环永远不会返回第二个元素

    我知道有关于如何访问和迭代 HtmlCollection 的答案 但它在这里对我不起作用 我得到了一些 tabSheetActive 类的元素 这些元素的数量可以是 1 或更多 我通过以下方式访问它们 var activeTabSheets
  • Python:通过套接字在两台计算机之间发送数据

    我正在编写一个脚本 该脚本可以在两台可以访问互联网的不同计算机之间传输数据 我正在使用 python 的套接字标准模块 当我在一台计算机上运行客户端和服务器时它工作正常 但当它们在不同计算机上运行时我无法使它们工作 这是我的服务器代码的一部
  • 尽管在前台运行且使用 START_STICKY,但在终止后无法重新启动服务

    我面临着一个关键问题 即绑定服务作为前台运行并带有通知 正如我找到的大多数教程和解决方案所提到的 我所做的一切都是正确的 我有一个启动服务然后与其绑定的活动 在服务的 onCreate 中 我使用 startForeground 并显示通知
  • 如何处理非常大的文本文件?

    我目前正在编写一些需要处理非常大的文本文件 至少几个 GiB 的东西 这里需要的是 这是固定的 基于 CSV 遵循 RFC 4180 嵌入式换行符除外 对行进行随机读取访问 但主要是逐行读取并接近末尾 在末尾添加行 换行 显然 这需要重写文
  • 发布管道与集成运行时冲突

    此问题涉及如果数据工厂中定义了自托管集成运行时 如何通过 CI 在 VSTS 中 传播数据工厂 我设置了 3 个环境 Dev UAT Prod 每个环境都有自己的数据工厂 开发人员托管主协作分支 我正在使用 VSTS 从 adf publi
  • 将模板字符串中的键替换为对象属性

    我有一个这样的对象 var obj Id 1 Rate 5 Price 200 Name History 还有这样的模板 var templateString
  • 如何在 Zeit Now 上使用 GraphQL 后端部署 Next.js?

    我有一个 Next js Express Apollo GraphQL 应用程序在本地主机上运行良好 我尝试将其部署在 Zeit Now 上 Next js 部分工作正常 但 GraphQL 后端失败 因为 graphql路线返回 502
  • React 渲染动态内部组件

    这个例子说明了我正在尝试做的事情 目标是拥有一个动态组件数组并将其渲染到屏幕上 我无法完成渲染部分 import PropTypes from prop types import React from react import MyComp
  • 谷歌服务器putty连接'断开连接:没有可用的支持的身份验证方法(服务器发送:公钥)

    我正在尝试通过 PuTTy 连接到我的 Debian Google Compute Engine 服务器 我也尝试过其他替代方案 但是当我这样做时 我收到错误 已断开连接 没有可用的受支持的身份验证方法 服务器发送 公钥 谷歌服务器没有用户
  • 如何在 macOS Sierra 上使用 tkinter 模块

    我正在尝试学习如何在 Python 中使用 tkinter 模块 但是当我在本地运行它时 出现以下错误 Traceback most recent call last File emailer line 1 in
  • 更新了导航框架并收到错误 -“getActionId 不覆盖任何内容”

    我已将导航框架从 2 3 5 更新到 2 4 0 alpha01 版本 我将它与 Safe Args gradle 插件一起使用 更新后 我开始得到 getActionId overrides nothing and getArgument
  • Android UDID 和 iPhone 一样吗?

    Android 也有像 iPhone 一样的 UDID 吗 如果是 有什么方法可以以编程方式获取它吗 谢谢 克里斯 来自docs http developer android com intl zh TW reference android
  • Pylons 在 Windows 上上传扭曲的图像

    我正在 Pylons 中创建一个网络应用程序 并且正在处理图像上传操作 目前正在我的 Windows 机器上使用 Egg paste http 运行 使用 pylons 文档快速入门中描述的基本开发配置 当我将图像发布到我的应用程序 然后将
  • 如何获取1个月的GPRS移动数据使用量?

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