2013-10-09 5 views
0

Как получить миниатюры других приложений, как это делает последнее приложение?Как получить миниатюры последнего приложения из моего собственного приложения?

Я обнаружил, что this app может это сделать.

Кажется, что вы можете получить эскиз формы фреймбуфера с правами root.

Однако я хотел бы знать, как это сделать без разрешения root.

спасибо!

+1

Вы пробовали что-нибудь? например, просматривая код активности приложений Android за последние приложения? – njzk2

+0

Активность приложений для Android в последнее время требует разрешения системного приложения. – JohanLiebhart

ответ

0

Во-первых, вы должны получить список приложений, которые вы установили.

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
final List appsList = context.getPackageManager().queryIntentActivities(mainIntent, 0); 

Затем вы можете вызвать getIconResource() и получить ресурс значка установочного приложения.

Для получения дополнительной информации см. ResolveInfo класс.

+0

Привет istovatis, Спасибо за ответ. То, что я пытаюсь получить, - это не значок, а миниатюра. Это похоже на скриншот для запуска приложения. – JohanLiebhart

0

Я наконец понял, что мы можем использовать java-отражение для вызова ActivityManagerNative.getTasks (int maxNum, int flags, IThumbnailReceiver receiver), чтобы получить миниатюры других приложений.

+0

Отлично! Можете ли вы рассказать мне, как именно вы вызвали getTasks? Я пробовал что-то вроде [this] (http://codepad.org/1ct1BO5y), но это бросает исключение NoSuchMethodException. –

+0

Привет, Пожалуйста, попробуйте это http://codepad.org/Cdy6VPgY – JohanLiebhart

+0

Хорошо, и как вы импортировали класс IThumbnailReceiver? Я думаю, что это должно быть в android.app, но его там нет. –

Смежные вопросы