如何像最近的应用一样获取其他应用的缩略图?
我发现这个应用程序可以做到这一点。
似乎可以通过 root 权限获得缩略图形式的帧缓冲区。
但是,我想知道如何在没有 root 权限的情况下执行此操作。
非常感谢!
我终于知道我们可以使用 java 反射调用 ActivityManagerNative.getTasks(int maxNum, int flags, IThumbnailReceiver receiver) 来获取其他应用的缩略图。
您可以使用 PackageManager 来完成。在这个答案中很好地描述了:
首先,您必须获取已安装的应用程序列表。
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List appsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
然后您可以调用 getIconResource() 并获取安装应用程序的图标资源。
有关详细信息,请参阅ResolveInfo类。