转自:http://blog.sina.com.cn/s/blog_75016706010122d0.html
1,通过PackageManager获得已安装程序:
Java代码
-
List installedList = mPackageManager.getInstalledPackages(0);
-
for (PackageInfo info : installedList) {
-
mInstalledList.add(info.packageName + ":" + info.applicationInfo.publicSourceDir + ":" + info.application.SourceDir);
-
count++;
-
}
1)取得程序大小,通过application的publicSourceDir获得。
2)取得程序时间,通过application的SourceDir获得。
Java代码
- new Date(new File(fileDir).lastModified()).toGMTString();
-------------------
通过PackageManager类的getInstalledApplications
--------------------------------------------------------------------------------------------------------------------------------------------------
自己的代码:
-
-
public static ArrayList<MyApplicationInfo> getInstalledApps(){
-
-
ArrayList<MyApplicationInfo> res = new ArrayList<MyApplicationInfo>();
-
List<ApplicationInfo> installedAppList = mPackageManager.getInstalledApplications (
-
PackageManager.GET_UNINSTALLED_PACKAGES);
-
if (installedAppList == null) {
-
return null;
-
}
-
List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
-
for (ApplicationInfo appInfo : installedAppList) {
-
boolean flag = false;
-
if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
-
flag = true;
-
} else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
-
flag = true;
-
}
-
if (flag) {
-
appList.add(appInfo);
-
}
-
}
-
for(int i=0;i<appList.size();i++) {
-
ApplicationInfo p = appList.get(i);
-
-
String dir = p.publicSourceDir;
-
-
int size = Integer.valueOf((int) new File(dir).length());
-
-
String date = new Date(new File(dir).lastModified()).toGMTString();
-
MyApplicationInfo newInfo = new MyApplicationInfo();
-
newInfo.appName = p.loadLabel(mPackageManager).toString();
-
newInfo.packageName = p.packageName;
-
newInfo.size = round(size);
-
try {
-
newInfo.versionName =mPackageManager.getPackageInfo(newInfo.packageName, 0).versionName;
-
newInfo.versionCode =String.valueOf(mPackageManager.getPackageInfo(newInfo.packageName, 0).versionCode);
-
} catch (Exception e) {
-
Log.e("PackageUtil", e.getMessage());
-
}
-
newInfo.icon = p.loadIcon(mPackageManager);
-
res.add(newInfo);
-
}
-
return res;
- }