在server中獲取的流量資料
根據包名獲取該應用的uid
public int getuid(string package) catch (packagemanager.namenotfoundexception e)
return -1;
}
流量統計工具類
public class datausageutil
public static datausageutil getinstance(context context)
return instance;
}public mapforloadermanager(networktemplate template, long start, long end)
mstats = null;
((activity)mcontext).getloadermanager().restartloader(loader_summary,
summaryforalluidloader.buildargs(template, start, end), msummarycallbacks);
int time = 50;
while(true)
if(mstats == null)
pm = mcontext.getpackagemanager();
mapmap = new hashmap<>();
int size = mstats.size();
networkstats.entry entity = null;
for(int i=0; imsummarycallbacks = new loadermanager.loadercallbacks<
networkstats>()
@override
public void onloadfinished(loaderloader, networkstats data)
@override
public void onloaderreset(loaderloader)
private void updateemptyvisible()
};public class datausagewifi
}public mapfornetworkstatsmanager(int type, long start, long end)
telephonymanager tm = (telephonymanager) mcontext.getsystemservice(context.telephony_service);
if(pm == null)
networkstatsmanager nsm = (networkstatsmanager) mcontext.getsystemservice(context.network_stats_service);
if(nsm == null)
try
return result;
} catch (remoteexception e)
}private mapgetdatausagebyuid(networkstatsmanager nsm, telephonymanager tm,
int type, long start, long end) throws remoteexception
mapmap = new hashmap<>();
summarystats = nsm.querysummary(type, subid, start, end);
do while (summarystats.hasnextbucket());
return map;
}}
該類是拷貝設定裡面的乙個類
public class summaryforalluidloader extends asynctaskloader
public summaryforalluidloader(context context, inetworkstatssession session, bundle args)
@override
protected void onstartloading()
@override
public networkstats loadinbackground() catch (remoteexception e)
}@override
protected void onstoploading()
@override
protected void onreset()
}
最終獲取應用流量資料
public long fornetworkstatsmanager()
log.e(tag,"使用流量:mobile="+ mapmobile.size()+ ", wifi="+ mapwifi.size()+ "\n");
maplist = new hashmap<>();
setkeys = mapmobile.keyset();
for(integer key : keys)else
} keys = mapwifi.keyset();
for(integer key : keys)else
} keys = list.keyset();
for(integer key : keys)
} return 0;
}
android 流量統計
說明 這裡流量統計用到的方法只支援在6.0以上系統執行,還有用到的乙個許可權只提供給系統應用使用,這兩條不能滿足,這篇文章基本也沒什麼參考價值,請移步其他解決方式。關於流量統計,早期android系統做的不太完善,手機關機所有的統計流量就會清零,資料都是從開機到當前時間的資料,沒有具體的一段時間內的...
Android流量統計
static long getmobilerxbytes 獲取通過mobile連線收到的位元組總數,不包含wifi static long getmobilerxpackets 獲取mobile連線收到的資料報總數 static long getmobiletxbytes mobile傳送的總位元組...
android 流量統計
1 android通過架構流量統計trafficstats類可以直接獲得 獲得總流量受理trafficstats.gettotalrxbytes 獲得總傳出流量trafficstats.gettotaltxbytes 獲取不包括wifi的手機gprs接收量trafficstats.getmobile...