TrafficStats.getUidRxBytes返回-1

时间:2018-10-30 18:23:09

标签: android kotlin android-trafficstats

我尝试获取每个已安装应用程序的Tx和Tr字节总数,但除我的应用程序外,总是返回-1。这是我的代码:

val pm = context.packageManager
val apps = HashMap<String, Long>()
    for( app in pm.getInstalledApplications(0) ) {
        Log.i(TAG, "app.packageName=${app.packageName} TrafficStats.getUidTxBytes(app.uid)=${TrafficStats.getUidTxBytes(app.uid)} TrafficStats.getUidRxBytes(app.uid)=${TrafficStats.getUidRxBytes(app.uid)}")
        apps.put(app.packageName, TrafficStats.getUidRxBytes(app.uid)+TrafficStats.getUidTxBytes(app.uid))
    }

1 个答案:

答案 0 :(得分:0)

根据文档:

  

从Build.VERSION_CODES.N开始,它将仅报告呼叫UID的流量统计信息。出于隐私原因,它将为所有其他UID返回UNSUPPORTED。要访问属于其他UID的历史网络统计信息,请使用NetworkStatsManager。

获取意外的返回值时,请始终先检查最新文档。