您的位置:首页 > 移动开发 > Android开发

android --- 2g/3g流量问题实例

2012-07-09 22:33 232 查看
public class DemoActivity extends Activity {
/** Called when the activity is first created. */
PackageManager pm;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pm = getPackageManager();

;// 获取手机里面所有的2g/3g产生的 下载的流量信息 receiver
System.out.println("2g/3g下载流量"
+ Formatter.formatFileSize(this,
TrafficStats.getMobileRxBytes()));

TrafficStats.getMobileTxBytes();// 获取手机里面所有的2g/3g产生的所有上传的信息 transport
System.out.println("2g/3g上传流量"
+ Formatter.formatFileSize(this,
TrafficStats.getMobileTxBytes()));

long wifirx = TrafficStats.getTotalRxBytes()
- TrafficStats.getMobileRxBytes();
long wifitx = TrafficStats.getTotalTxBytes()
- TrafficStats.getMobileTxBytes();

System.out.println("wifi下载流量" + Formatter.formatFileSize(this, wifirx));
System.out.println("wifi上传流量" + Formatter.formatFileSize(this, wifitx));

// 获取所有安装在手机上的应用软件的信息 ,并且获取这些软件里面的权限信息
// ctrl+shift+o 快速导包
List<PackageInfo> packinfos = pm
.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES
| PackageManager.GET_PERMISSIONS);
for (PackageInfo info : packinfos) {
String[] premissions = info.requestedPermissions;
if (premissions != null && premissions.length > 0) {
for (String premission : premissions) {
if("android.permission.INTERNET".equals(premission)){
//System.out.println(info.packageName+"访问网络");
int uid = info.applicationInfo.uid;
long rx = TrafficStats.getUidRxBytes(uid);
long tx = TrafficStats.getUidTxBytes(uid);
if(rx<0||tx<0){
System.out.println(info.packageName + "没有产生流量");
}else{
System.out.println(info.packageName+"的流量信息:");
System.out.println("下载的流量"+Formatter.formatFileSize(this, rx));
System.out.println("上传的流量"+Formatter.formatFileSize(this,tx ));
}
}
}
System.out.println("---------");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: