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

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;
		
	}
	
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值