//1.获取一个包管理器。 PackageManager pm = getPackageManager(); //2.遍历手机操作系统 获取所有的应用程序的uid List<ApplicationInfo> appliactaionInfos = pm.getInstalledApplications(0); for(ApplicationInfo applicationInfo : appliactaionInfos){ int uid = applicationInfo.uid; // 获得软件uid //proc/uid_stat/10086 long tx = TrafficStats.getUidTxBytes(uid);//发送的 上传的流量byte long rx = TrafficStats.getUidRxBytes(uid);//下载的流量 byte //方法返回值 -1 代表的是应用程序没有产生流量 或者操作系统不支持流量统计 } TrafficStats.getMobileTxBytes();//获取手机3g/2g网络上传的总流量 TrafficStats.getMobileRxBytes();//手机2g/3g下载的总流量 TrafficStats.getTotalTxBytes();//手机全部网络接口 包括wifi,3g、2g上传的总流量 TrafficStats.getTotalRxBytes();//手机全部网络接口 包括wifi,3g、2g下载的总流量
final PackageManager packageManager = getActivity().getPackageManager();//获取packagemanager List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息 if(pinfo != null){ for(int i = 0; i < pinfo.size(); i++){ String packName = pinfo.get(i).packageName; Log.d("info", "-->"+packName); } }
Uri uri = Uri.fromFile(updateFile); //获取文件的Uri Intent installIntent = new Intent(Intent.ACTION_VIEW); installIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); installIntent.setDataAndType(uri, "application/vnd.android.package-archive");//设置intent的数据类型 startActivity(installIntent);
有时候我们可能开发了多款软件,这时候我们需要在其中一款软件中启动另一款软件,这时候需要的方法如下: PackageManager pm = getPackageManager(); Intent i = pm.getLaunchIntentForPackage("com.test.aaa");//获取启动的包名 startActivity(i);
android中卸载指定包名的应用程序方法如下: Uri uri = Uri.parse("package:com.test.aaa");//获取删除包名的URI i.setAction(Intent.ACTION_DELETE);//设置我们要执行的卸载动作 i.setData(uri);//设置获取到的URI startActivity(i);
最后要记得在Manifest文件里增加权限:<uses-permission android:name="android.permission.DELETE_PACKAGES"/>