当前位置:首页 > 芯闻号 > 充电吧
[导读] /**  * 获得本次开机后使用的流量  */     public void getData() {         //PackageManager 包管理类         Package

	/**
	 * 获得本次开机后使用的流量
	 */
    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;
    }
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭