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

android 获取系统内所有应用的信息

2012-08-09 15:25 155 查看
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.util.Log;

public class RunningAppInfoParam {

private Context m_context;
private static final String LogTag = "hello";

public RunningAppInfoParam(Context context) {
m_context = context;
}

public List<ApplicationInfo> getInstallAppInfo() {
PackageManager mypm = m_context.getPackageManager();
List<ApplicationInfo> appInfoList = mypm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
Collections.sort(appInfoList, new ApplicationInfo.DisplayNameComparator(mypm));// 排序

for(ApplicationInfo app: appInfoList) {
//Log.v(LogTag, "RunningAppInfoParam  getInstallAppInfo app label = " + (String)app.loadLabel(umpm));
//Log.v(LogTag, "RunningAppInfoParam  getInstallAppInfo app packageName = " + app.packageName);
}

return appInfoList;
}

//获取第三方应用信息
public ArrayList<String> getThirdAppInfo() {
List<ApplicationInfo> appList = getInstallAppInfo();
List<ApplicationInfo> thirdAppList = new ArrayList<ApplicationInfo>();
thirdAppList.clear();
for (ApplicationInfo app : appList) {
//非系统程序
if ((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {
thirdAppList.add(app);
}
//本来是系统程序,被用户手动更新后,该系统程序也成为第三方应用程序了
else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){
thirdAppList.add(app);
}
}
PackageManager mypm = m_context.getPackageManager();
ArrayList<String> thirdAppNameList = new ArrayList<String>();
for(ApplicationInfo app : thirdAppList) {
Log.v(LogTag, "RunningAppInfoParam getThirdAppInfo app label = " + (String)app.loadLabel(mypm));
thirdAppNameList.add((String)app.loadLabel(mypm));
}

return thirdAppNameList;
}

//获取系统应用信息
public ArrayList<String> getSystemAppInfo() {
List<ApplicationInfo> appList = getInstallAppInfo();
List<ApplicationInfo> sysAppList = new ArrayList<ApplicationInfo>();
sysAppList.clear();
for (ApplicationInfo app : appList) {
if ((app.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
sysAppList.add(app);
}
}
PackageManager mypm = m_context.getPackageManager();
ArrayList<String> sysAppNameList = new ArrayList<String>();
for(ApplicationInfo app : sysAppList) {
Log.v(LogTag, "RunningAppInfoParam getThirdAppInfo app label = " + (String)app.loadLabel(mypm));
sysAppNameList.add((String)app.loadLabel(mypm));
}

return sysAppNameList;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐