파이어몽키 개발자 커뮤니티 네이버 카페(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 절을 알려주셔서 포함했습니다.