Created
February 14, 2015 07:44
-
-
Save treesouth/c08240345ad264add7e8 to your computer and use it in GitHub Desktop.
android获取系统内所有app的信息
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment