本文實例講述了Android編程實現監控各個程序流量的方法。分享給大家供大家參考,具體如下:
public void getAppTrafficList(){ //獲取所有的安裝在手機上的應用軟件的信息,并且獲取這些軟件里面的權限信息 PackageManager pm=getPackageManager();//獲取系統應用包管理 //獲取每個包內的androidmanifest.xml信息,它的權限等等 List<PackageInfo> pinfos=pm.getInstalledPackages (PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_PERMISSIONS); //遍歷每個應用包信息 for(PackageInfo info:pinfos){ //請求每個程序包對應的androidManifest.xml里面的權限 String[] premissions=info.requestedPermissions; if(premissions!=null && premissions.length>0){ //找出需要網絡服務的應用程序 for(String premission : premissions){ if("android.permission.INTERNET".equals(premission)){ //獲取每個應用程序在操作系統內的進程id int uId=info.applicationInfo.uid; //如果返回-1,代表不支持使用該方法,注意必須是2.2以上的 long rx=TrafficStats.getUidRxBytes(uId); //如果返回-1,代表不支持使用該方法,注意必須是2.2以上的 long tx=TrafficStats.getUidTxBytes(uId); if(rx<0 || tx<0){ continue; }else{ // Toast.makeText(this, info.applicationInfo.loadLabel(pm)+"消耗的流量--"+ // Formatter.formatFileSize(this, rx+tx), Toast.LENGTH_SHORT); } } } } } }
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選