본문 바로가기

파이어몽키

안드로이드 기기에 설치된 앱 목록표시와 실행하기

파이어몽키 개발자 커뮤니티 네이버 카페(http://cafe.naver.com/delphifmx)에서 가을이다 님이 올려주신 내용입니다.

(RAD Studio 모바일(멀티-디바이스) 개발에 관심이 있으시면 반드시 가입해야 하는 까페입니다. 가입하세요.)


안드로이드 기기에 설치된 앱의 목록을 표시하고 앱을 실행하는 예제입니다.


uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  FMX.Helpers.Android,
  AndroidApi.Helpers,
  Androidapi.JNIBridge;

// 중략

var
  PM: JPackageManager;
  mainIntent: JIntent;
  LaunchIntent: JIntent;
  pkgAppsList: JList;
  ri: JResolveInfo;
  iter: JIterator;
  midlist : TStringList;
begin
  PM := SharedActivityContext.getPackageManager;
  mainIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_MAIN, nil);
  mainIntent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
  pkgAppsList := PM.queryIntentActivities(mainIntent, 0);
  midlist := TStringList.Create;
  iter := pkgAppsList.iterator;
  while iter.hasNext do
  begin
    ri := TJResolveInfo.Wrap((iter.next as ILocalObject).GetObjectID);
    mIdList.Add(JStringToString(ri.activityInfo.applicationInfo.packageName));
  end;
  LaunchIntent := PM.getLaunchIntentForPackage(StringToJString(mIdList[2]));

// 해당을 실행하려면 아래처럼,..,
// SharedActivityContext.startActivity( LaunchIntent )

  showmessage(  mIdList.Text );
end;

댓글에서 수달님 께서 안드로이드 2.3.4 버전에서 정상동작을 확인하셨고, uses 절을 알려주셔서 포함했습니다.


참고