Android 获取应用流量的使用情况有两种方法
TrafficStats
NetworkStatsManager 是Android 6.0(API23)中新增加的类
这次我们使用的是第二种方法,记录一下实现过程
首先说明NetworkStatsManager能提供哪些功能
区分 Wifi 和手机网络的流量使用
查询指定应用的流量使用
查询指定时间段的流量使用(当天/当月/总共)
区分接收和发送的流量使用
看下方法使用代码
/**
* 本机使用的 wifi 总流量
*/
public long getAllBytesWifi() {
NetworkStats.Bucket bucket;
try {
bucket = networkStatsManager.querySummaryForDevice(ConnectivityManager.TYPE_WIFI,
"",
0,
System.currentTimeMillis());
} catch (RemoteException e) {
return -1;
}
//这里可以区分发送和接收
return bucket.getTxBytes() +bucket.getRxBytes() ;
}
/**
* 本机使用的 mobile 总流量
*/
public long getAllBytesMobile() {
NetworkStats.Bucket bucket;
try {