如何以编程方式获取Android设备的总数据用量?

时间:2017-07-04 08:24:17

标签: android usage-statistics android-data-usage

在Android智能手机的设置菜单中,我可以看到当前和过去周期的总数据使用情况。我能以某种方式在我的应用程序中以编程方式检索该信息吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用android.net.TrafficStats获取流量详情:

例如,获取收到的总字节数:

android.net.TrafficStats.getTotalRxBytes()

如果你想逐个发送和接收你的应用程序信息,你可以这样得到:

首先让所有正在运行信息的应用程序:

List<RunningAppProcessInfo>

然后获取您想要的每个应用的UID

ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningApps = manager.getRunningAppProcesses();

for (RunningAppProcessInfo runningApp : runningApps) {
  // Get UID of the selected process
  int uid = ((RunningAppProcessInfo)getListAdapter().getItem(position)).uid;

  long received = TrafficStats.getUidRxBytes(uid);//received amount of each app
  long send   = TrafficStats.getUidTxBytes(uid);//sent amount of each app
}

让我知道这就是你想要的