Android获得本应用本次开机后的流量
扫描二维码
随时随地手机看文章
/** * 获得本次开机后使用的流量 */ public void getData() { //PackageManager 包管理类 PackageManager packageManager = context.getPackageManager(); int PackageUid = 0; BigDecimal numRx = new BigDecimal("0"); BigDecimal numTx = new BigDecimal("0"); /** * 循环抓紧所有应用的包名 * 和当前应用的包名进行匹配操作 * 把获取到的UID保存到一个临时变量 */ for(ApplicationInfo info : packageManager.getInstalledApplications(0)){ int uid = info.uid; String packageName = info.packageName; if(packageName.equals(PACKAGENAME)){ PackageUid = uid; } } //TrafficStats类根据应用的UID获取到流量的相关数据 long rx = TrafficStats.getUidRxBytes(PackageUid);//总接收量 long tx = TrafficStats.getUidTxBytes(PackageUid);//总发送量 LogManager.show(TAG, "本应用本次开机总接收量:"+rx, 1); LogManager.show(TAG, "本应用本次开机总发送量:"+tx, 1); if(rx>0){ numRx = byteToM(rx); } if(tx>0){ numTx = byteToM(tx); } LogManager.show(TAG, "转换为(M为单位)后的总接收量:"+numRx.floatValue(), 1); LogManager.show(TAG, "转换为(M为单位)后的总发送量:"+numTx.floatValue(), 1); } /** * 字节转换为M */ private BigDecimal byteToM(long value){ BigDecimal result = new BigDecimal(Long.toString(value)); result = result.divide(new BigDecimal("1024.0")).divide(new BigDecimal("1024.0")); return result; }