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的主要内容,如果未能解决你的问题,请参考以下文章