Account Options

  1. Sign in
The old Google Groups will be going away soon.
Switch to the new Google Groups.
Google Groups Home
« Groups Home
アプリからの画面キャプチャの方法
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
help  
View profile   Translate to Translated (View Original)
 More options Mar 2 2011, 6:54 am
From: help <akatsuki...@gmail.com>
Date: Wed, 2 Mar 2011 03:54:38 -0800 (PST)
Local: Wed, Mar 2 2011 6:54 am
Subject: アプリからの画面キャプチャの方法
こんにちは。

以下についての情報をお持ちの方、ご教授いただけませんでしょうか。

ddmsから、実機もしくはEmulatorの画面のキャプチャを取得する方法

は広く知られていると思いますが、

実機にインストールされている端末のアプリから、

今現在表示されている画面のキャプチャをとる方法はありませんでしょうか?

AndroidScreenMonitor等を利用し、

PC→実機のキャプチャ画像を落とすことは出来るのですが、

実機にあるアプリからのトリガーでキャプチャ画像を取る方法が分かりません。

ご存知の方よろしくお願いします。


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
福井登志也  
View profile   Translate to Translated (View Original)
 More options Mar 2 2011, 7:38 am
From: 福井登志也 <dx7...@gmail.com>
Date: Wed, 2 Mar 2011 21:38:14 +0900
Local: Wed, Mar 2 2011 7:38 am
Subject: Re: [android-group-japan: 9806] アプリからの画面キャプチャの方法

help 様

こんにちは。

福井@ちょるちょるドットコムです。

偶然にも同じことを私の方でも昨日から調べていました。

今のところ、スクリーンのキャプチャを取る方法は見つかっていないのですが、
View のイメージを抜き出す方法は以下のURLで紹介されていますね。

http://www.saturn.dti.ne.jp/~npaka/android/SnapShotEx/index.html

ですが、こちらの方法は SurfaceView やVideoView から撮ることはできません。

しかし、以下のアプリのように 画面キャプチャを取得するアプリを作られた方もいるようです。

http://jp.androlib.com/android.application.net-srcz-android-screensho...

私のほうでは、Linux 向けの一般的なスクリーンショットアプリのソースを見てみようと思ってたところでした。
おそらく、SDK に用意されてる部品では不可能ではないかと...。

参考にならずに申し訳ありません (-_-;)

// ちょるちょるドットコム 福井登志也

2011年3月2日20:54 help <akatsuki...@gmail.com>:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
鷹見純  
View profile   Translate to Translated (View Original)
 More options Mar 3 2011, 9:33 am
From: 鷹見純 <takam...@gmail.com>
Date: Thu, 3 Mar 2011 23:33:08 +0900
Local: Thurs, Mar 3 2011 9:33 am
Subject: Re: [android-group-japan: 9807] アプリからの画面キャプチャの方法

help 様

画面キャプチャは,フレームバッファデバイス"/dev/graphics/fb"を使用して,ここから画像イメージをキャプチャします。
このデバイスの実態はRAM上のビデオRAMです。
このデバイスにアクセスするには,ルート権限必要です。
アプリケーションプログラムは,ルート権限を取得できないので,画面をキャプチャすることはできません。
ddmsでキャプチャを行う部分はルート権限で稼働します。

1. 実機のキャプチャ
アプリケーションがユーザ権限をとることができませんので,フレームバッファにアクセスできません。
したがって,アプリでのキャプチャは困難です。

2. Emulator
  adbのshellはルート権限で稼働します。
c言語でプログラムを作成し,adbから起動するとルート権限で稼働するプロセスができます。
これを使えば,フレームバッファにアクセスできます。

鷹見


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
福井登志也  
View profile   Translate to Translated (View Original)
 More options Mar 3 2011, 9:57 am
From: 福井登志也 <dx7...@gmail.com>
Date: Thu, 3 Mar 2011 23:57:21 +0900
Local: Thurs, Mar 3 2011 9:57 am
Subject: Re: [android-group-japan: 9855] アプリからの画面キャプチャの方法

鷹見様

福井です。

私も困っていたので、非常に有益な情報をありがとうございます。

やはり root 化されたデバイスでないと、ダメみたいですね。

 画面を構成するそれぞれの View から getDrawingCache から取得したビットマップを
組み合わせてそれっぽいものを作ることは出来たのですが、どうしても SurfaceView から 派生している VideoView
のビットマップは取得できず、SurfaceView のソースコードを見て納得しているところです。

MediaPlayer のソースには以下の通り、getFrameAt()
という未実装のメソッドが用意されており、今後、これが公開されば、VideoViewのスクリーンショットも取ることができそうですが...。

(android_src)/frameworks/base/media/java/android/media/MediaPlayer.java:118 0

/**
* Currently not implemented, returns null.
* @deprecated
* @hide
*/
public native Bitmap getFrameAt(int msec) throws IllegalStateException;

// ちょるちょるドットコム 福井登志也

2011年3月3日23:33 鷹見純 <takam...@gmail.com>:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
 
View profile   Translate to Translated (View Original)
 More options Mar 3 2011, 7:44 pm
From: 城 <tak.joe.mob...@gmail.com>
Date: Thu, 3 Mar 2011 16:44:57 -0800 (PST)
Local: Thurs, Mar 3 2011 7:44 pm
Subject: Re: アプリからの画面キャプチャの方法
城です

> 画面キャプチャは,フレームバッファデバイス"/dev/graphics/fb"を使用して,ここから画像イメージをキャプチャします。
> このデバイスの実態はRAM上のビデオRAMです。
> このデバイスにアクセスするには,ルート権限必要です。

graphics グループでreadできます。
shell ユーザは graphics グループです。

> アプリケーションプログラムは,ルート権限を取得できないので,画面をキャプチャすることはできません。
> ddmsでキャプチャを行う部分はルート権限で稼働します。

実機では、shell ユーザです。
エミュレータ上ですと、root です。

> 1. 実機のキャプチャ
> アプリケーションがユーザ権限をとることができませんので,フレームバッファにアクセスできません。
> したがって,アプリでのキャプチャは困難です。

'Android ScreenGrab' で google検索していただくと、
root なしで実現されている方のページが見つかります。
fbを読み込むプロセスを、shell権限で実行して、
JNI経由で取得しています。
USBで繋いで、adb の shell から 起動してあげる必要があります。

パッと見めんどくさそうですが、
一連の動作をバッチ処理等でワンクリックでできるようにすれば、
一般のユーザでの敷居も下がり、いいかな。


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »