2011-04-29 23 views
0

在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是否也會保留這些圖像在某處可訪問。

回答

1

應用程序無法訪問這些縮略圖。

+0

對不起,我應該澄清 - 我的意思是通過訪問文件系統(ADB殼)的任何人訪問,不一定被任何應用程序使用。我很好奇他們在哪裏/如何存儲。 – cji 2011-04-29 18:18:31

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());    
     } 
    } 
}