2012-04-03 11 views
0

ユーザーがアプリを使っている間にアンドロイドアプリケーションのスクリーンショットを撮って、そのスクリーンショットをサーバーに送信する方法はありますか?スクリーンショットは、特定の時間間隔で撮影する必要があります。アンドロイドアプリケーションでユーザーに知らなくてもスクリーンショットを撮る

いくつかの実装方法をお知らせください。

+0

私が覚えている限り、「特別な」アプリだけが(メーカーが署名した)スクリーンショットを取得する許可を持っているので、スクリーンショットは非ルートのデバイスで簡単ではありません。セキュリティ上の問題です(アンドロイドのスクリーンロガー=あなたのPC上のkeylogger)。 見よう1つのヒント:最後に試してからしばらく時間がかかりましたが、ネイティブライブラリを使用する必要があると思います。 – Sprigg

答えて

0

ImageView、TextView、または特定の画面にボタンなどの他のビューがあるとします。そして、あなたはこのようにやってます:あなたはbyte[]にビットマップを変換し、それをサーバーに送信する必要が

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

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

そして、あなたはあなたの要件ごとに、このコードを処理することができます:あなたはスクリーンショットを取ることができることができますコードの下に使用することにより

+0

これは、このコードが正しく動作しているのと同じアプリでのみ使用できますか? – Sudar

+0

ええ。ヘマタラでさえ、質問で同じことを求めていました。 (彼女は "私のアプリケーション"を言った) –

+0

あなたは正しいです。 * my app *の部分を見逃しました。 – Sudar

0

。ここで、bmはスクリーンショットビットマップで、ビットマップファイルを適切なサーバーに送信して、それについて知ることができます。

お楽しみください。 :)

0

あなたが言ったように、あなたはウルのアプリケーションからスクリーンショットを撮りたい、これを試してみてください。

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

MYVIEWは、私たちが画面に含める必要を通じて図です。

関連する問題