获取3G或wifi流量信息

本文介绍了一种通过Android系统的IBatteryStats接口获取电池相关的统计数据的方法,包括不同状态下的TCP接收和发送的数据量等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IBatteryStats battryStats = IBatteryStats.Stub.asInterface(ServiceManager.getService("batteryinfo"));
        byte[] data = null;
        try {
            data = battryStats.getStatistics();
            Parcel parcel = Parcel.obtain();
            parcel.unmarshall(data, 0, data.length);
            parcel.setDataPosition(0);
            final BatteryStatsImpl impl = BatteryStatsImpl.CREATOR.createFromParcel(parcel);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            long length1_1 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_CURRENT);
            long length1_2 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_LAST);
            long length1_3 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_TOTAL);
            long length1_4 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_UNPLUGGED);
             
            long length2_1 = impl.getTotalTcpBytesSent(BatteryStats.STATS_CURRENT);
            long length2_2 = impl.getTotalTcpBytesSent(BatteryStats.STATS_LAST);
            long length2_3 = impl.getTotalTcpBytesSent(BatteryStats.STATS_TOTAL);
            long length2_4 = impl.getTotalTcpBytesSent(BatteryStats.STATS_UNPLUGGED);
             
            long length3_1 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_CURRENT);
            long length3_2 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_LAST);
            long length3_3 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_TOTAL);
            long length3_4 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_UNPLUGGED);
             
            long length4_1 = impl.getMobileTcpBytesSent(BatteryStats.STATS_CURRENT);
            long length4_2 = impl.getMobileTcpBytesSent(BatteryStats.STATS_LAST);
            long length4_3 = impl.getMobileTcpBytesSent(BatteryStats.STATS_TOTAL);
            long length4_4 = impl.getMobileTcpBytesSent(BatteryStats.STATS_UNPLUGGED);
             
            Log.d("TAG", "total tcp R dataC:" + length1_1/(1024*1024));
            Log.d("TAG", "total tcp R dataL:" + length1_2/(1024*1024));
            Log.d("TAG", "total tcp R dataT:" + length1_3/(1024*1024));
            Log.d("TAG", "total tcp R dataU:" + length1_4/(1024*1024));
             
            Log.d("TAG", "total tcp S dataC:" + length2_1/(1024*1024));
            Log.d("TAG", "total tcp S dataL:" + length2_2/(1024*1024));
            Log.d("TAG", "total tcp S dataT:" + length2_3/(1024*1024));
            Log.d("TAG", "total tcp S dataU:" + length2_4/(1024*1024));
             
            Log.d("TAG", "M R tcp dataC:" + length3_1/(1024*1024));
            Log.d("TAG", "M R tcp dataL:" + length3_2/(1024*1024));
            Log.d("TAG", "M R tcp dataT:" + length3_3/(1024*1024));
            Log.d("TAG", "M R tcp dataU:" + length3_4/(1024*1024));
             
            Log.d("TAG", "M S tcp dataC:" + length4_1/(1024*1024));
            Log.d("TAG", "M S tcp dataL:" + length4_2/(1024*1024));
            Log.d("TAG", "M S tcp dataT:" + length4_3/(1024*1024));
            Log.d("TAG", "M S tcp dataU:" + length4_4/(1024*1024));
             
        } catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值