我尝试获取每个安装的应用程序的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))
}
根据文档:
在Build.VERSION_CODES.N中启动,这将只报告调用UID的流量统计信息。出于隐私原因,它将为所有其他UID返回UNSUPPORTED。要访问属于其他UID的历史网络统计信息,请使用NetworkStatsManager。
当获得您意想不到的返回值时,请始终首先查看最新的文档。