在Android 3.0中,会自动截取应用程序以在“最近的应用程序”列表中使用。看起来SurfaceFlinger负责根据以下日志输出获取这些屏幕截图:
D/SurfaceFlinger( 133): screenshot: sw=216, sh=135, minZ=0, maxZ=21020
D/SurfaceFlinger( 133): screenshot: result = OK
文件系统中的哪些(如果有的话)这些图像是否被缓存? iOS有类似的功能,当应用程序发送到后台时会自动截取屏幕截图,并且图像缓存在/ private / var / root / Library / Caches / Snapshots中,我想知道Android是否还保留这些图像在某处可访问。
答案 0 :(得分:1)
应用程序无法访问这些缩略图。
答案 1 :(得分:0)
private void getRecentTaskThumbnails() {
if (mBitmaps != null) {
mBitmaps.clear();
} else {
mBitmaps = new LinkedList<Bitmap>();
}
mCurIndex = 0;
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasks(
20, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
for (ActivityManager.RecentTaskInfo task : recentTasks) {
Log.e(TAG, "task:"
+ task.baseIntent.getComponent().getPackageName() + "="
+ task.persistentId);
ActivityManager.TaskThumbnails thumbs = am
.getTaskThumbnails(task.persistentId);
if(thumbs != null && thumbs.mainThumbnail != null) {
mBitmaps.add(thumbs.mainThumbnail);
Log.e(TAG, "thumbs=" + thumbs + "size="+thumbs.mainThumbnail.getWidth()+","+thumbs.mainThumbnail.getHeight());
}
}
}