java 获取Android系统安装的应用程序信息#Android

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 获取Android系统安装的应用程序信息#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;  
          
    }  
      
}  

以上是关于java 获取Android系统安装的应用程序信息#Android的主要内容,如果未能解决你的问题,请参考以下文章

关于获取Android系统所有已安装App信息的一些操作(详细)

在C#中如何获取系统中所安装的所有软件信息

如何简单快速获取Android应用包名

如何获取android 进程信息

怎么用Java获取iOS设备的硬件信息?

Android开发之通过包管理器获取安装应用信息