이전 글에서는 프로젝트에서 흔히 사용되는 몇 가지 실용적인 기능을 소개했으니, 이번 글에서는 안드로이드 폰에 설치된 모바일 애플리케이션을 얻는 방법에 대해 소개하겠습니다. 자, 더 이상 고민하지 않고 바로 코드로 넘어가겠습니다.
private String getInstalledAppListAsString(){ PackageManager pm = context.getPackageManager(); List<ApplicationInfo> apps = pm.getInstalledApplications(PackageManager.GET_GIDS); StringBuffer stringBuffer = new StringBuffer() for (ApplicationInfo 앱: 앱); getLaunchIntentForPackage(app.packageName) != null) { // 실행 프로그램 의도가 있는 앱 if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) { // 시스템 앱 업데이트 } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { // system apps } else { // 사용자가 설치한 앱 stringBuffer.append(app.packageName).append(';') } } } return stringBuffer.toString() }각 애플리케이션에 대한 관련 정보를 얻는 방법을 살펴보겠습니다.
package cn.lyz.mobilesafe.domain;import android.graphics.drawable.Drawable;/** * 획득한 애플리케이션 기본 정보 엔터티 클래스 * @author liuyazhuang * */public class AppInfo {//Icon private Drawable app_icon;//애플리케이션 이름 private String app_name;//애플리케이션 버전 번호 private String app_version;//애플리케이션 패키지 이름 private String packagename;//사용자인지 여부 appprivate boolean isUserApp;public AppInfo() {super();//TODO 자동 생성 생성자 스텁}public AppInfo(Drawable app_icon, String app_name, String app_version,String packagename) {super();this.app_icon = app_icon;this.app_name = app_name;this.app_version = app_version;this.packagename = 패키지 이름;}public AppInfo(Drawable app_icon, 문자열 app_name, 문자열 app_version, 문자열 패키지 이름, 부울 isUserApp) {super();this.app_icon = app_icon;this.app_name = app_name;this.app_version = app_version;this.packagename = packagename;this.isUserApp = isUserApp;}공용 Drawable getApp_icon() {return app_icon;}public void setApp_icon(Drawable app_icon) {this.app_icon = app_icon;}public String getApp_name() {return app_name;}public void setApp_name(String app_name) {this.app_name = app_name;}public String getApp_version() {return app_version;}public void setApp_version(String app_version) {this.app_version = app_version;}public String getPackagename() {return packagename;}public void setPackagename(String packagename) {this.packagename = packagename;}public boolean isUserApp() {return isUserApp;}public void setUserApp(boolean isUserApp) {this.isUserApp = isUserApp;}@Overridepublic String toString() {return "AppInfo [app_icon =" + 앱_아이콘 + ", 앱_이름=" + 앱_이름+ ", 앱_버전=" + app_version + ", 패키지 이름="+ 패키지 이름 + ", isUserApp=" + isUserApp + "]";}}