2012-04-03 52 views
0

有沒有一種方法可以在用戶使用應用程序時拍攝我的android應用程序的屏幕截圖,並在不知道用戶的情況下將這些屏幕截圖發送到服務器。應該在特定的時間間隔拍攝屏幕截圖。在Android應用程序中不知道用戶的屏幕截圖

請給出一些實現的想法。

+0

據我記憶,在非根目錄的設備上採取screenshotsis並非易事,因爲只有「特殊」應用纔有權採取截圖(由製造商簽名)。這是一個安全問題(你的電腦上的android =鍵盤記錄器中的screenlogger)。 有一點需要看一下:自從我上次嘗試它以來已經有一段時間了,但我認爲你必須使用本地庫。 – Sprigg 2012-04-03 06:26:09

回答

0

假設在該特定屏幕中存在ImageView或TextView或某個其他視圖,如按鈕等。然後,你會做這樣的:

View v=img.getRootView(); //img is ImageView. you replace it with your view 
v.setDrawingCacheEnabled(true); 
Bitmap bmp= v.getDrawingCache(); 

你要位圖轉換爲byte[]並將其發送到服務器。

+0

這隻能在代碼運行的同一個應用上使用嗎? – Sudar 2012-04-03 06:30:02

+0

是的。甚至hemalatha在問題中也提出了同樣的問題。 (她提到「我的申請」) – 2012-04-03 06:31:56

+0

是的,你是對的。錯過*我的應用*部分。 – Sudar 2012-04-03 06:39:04

0

使用下面的代碼,你可以能夠採取截屏:

View root = findViewById(android.R.id.content); 
root.setDrawingCacheEnabled(true); 
Bitmap bm = Bitmap.createBitmap(root.getDrawingCache()); 
root.setDrawingCacheEnabled(false); 

而且你可以處理這個代碼按您的要求。這裏bm是屏幕截圖位圖,您可以將該位圖文件發送到適當的服務器並瞭解它。

享受。 :)

0

正如你所說,你想從你的應用程序截圖,試試這個。

Bitmap bitmap; 
View v1 = MyView.getRootView(); 
v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache()); 
v1.setDrawingCacheEnabled(false); 

MyView是通過我們需要包括在屏幕中的視圖。

相關問題