zoukankan      html  css  js  c++  java
  • android 利用TrafficStats类获取本应用的流量

    public void getData() {
            // PackageManager 包管理类
            PackageManager packageManager = BrownserActivity.this.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.indexOf("iAssistant") > -1) {
                    PackageUid = uid;
                    break;
                }
            }*/
            // 获取当前应用的uid
            PackageUid = android.os.Process.myUid();
    
            // TrafficStats类根据应用的UID获取到流量的相关数据
            long rx = TrafficStats.getUidRxBytes(PackageUid);// 总接收量
            long tx = TrafficStats.getUidTxBytes(PackageUid);// 总发送量
    
            float justLoad = 0f;
            Log.i("scott", "本应用本次开机总接收量:" + rx);
            Log.i("scott", "本应用本次开机总发送量:" + tx);
            if (rx > 0) {
                numRx = byteToM(rx);
                justLoad = numRx.floatValue() - initData;
                initData = numRx.floatValue();
            }
            if (tx > 0) {
                numTx = byteToM(tx);
            }
    
            // Toast.makeText(BrownserActivity.this, "总接收量:"+numRx.floatValue()+"M",
            // Toast.LENGTH_SHORT).show();
            Toast.makeText(BrownserActivity.this, "本次接收量:" + justLoad + "M", Toast.LENGTH_SHORT).show();
            Log.i("scott", "转换为(M为单位)后的总接收量:" + numRx.floatValue());
            Log.i("scott", "转换为(M为单位)后的总发送量:" + numTx.floatValue());
    
        }
    
        /**
         * 字节转换为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;
        }
  • 相关阅读:
    asp.net 汉字转拼音类
    NET分页实现及代码
    Web.config配置文件详解(新手必看) (转载)
    偶开通博客啦
    转帖不会乱码的,powershell网络蜘蛛
    ConvertFrom-String 命令研究
    powershell玩转xml之20问
    powershell 判断操作系统版本 命令
    powershell加win的dns服务器,解决网站负载均衡问题
    PowerShell并发控制-命令行参数之四问
  • 原文地址:https://www.cnblogs.com/mushishi/p/3880463.html
Copyright © 2011-2022 走看看