0

Android 2.3のスクリーンショット機能を実装しています(ICSにはすでにスクリーンショット機能があることを知っています)。私はAndroidスクリーンショットライブラリ(略してASL)プロジェクトをベースとして使用しており、ニーズに合わせて変更しています。Androidのソースコードを自由に変更することもできます。目標は、Galaxy Noteのようなものにすることです。キーを押すコンボでスクリーンショットを撮ると、エディターが表示され、好きなように画像を変更できます。メイン画面で、アプリを使用しているときなど、どこでもスクリーンショットを撮ることができます。

現在、3つの作業部分があります。画面バッファーをキャプチャするネイティブバイナリ、ネイティブバイナリと通信してスクリーンショットを取得するサービス、およびエディターです。しかし、どうすれば3つのことを組み合わせることができるのかわかりません。ネイティブバイナリをAndroidのビルド済みパーツに追加し、init.rcを変更して、起動時にrootとして実行することができます(ただし、これを行う必要があります)。エディターは、Androidにも含めることができるシンプルなアプリです。しかし、私はまだサービスをどうするかを理解することができません。

理想的には、サービスをトリガーするキー押下コンボ(たとえば、電源ボタンと音量ダウン、または2つのフロントボタン)をキャプチャしたいと思います。次に、サービスはバイナリを呼び出してスクリーンショットを撮り、スクリーンショットを使用してエディターを開くインテントを起動します。しかし、私が知る限り、サービスはキーの押下をキャッチできません。また、スクリーンショットを撮るタイミングを知るためにサービスをどこかにバインドする必要があるので、Android自体を変更してサービスを開始し、起動時にバインドする必要があると思いますが、Androidのソースコードに関するドキュメントが不足していますどこから探し始めるのかわかりません。

Androidのどのコンポーネントがキーの押下を担当し、どこでサービスをバインドする必要があるかを誰かが知っていますか?私のアプローチはまったく可能ですか?

可能な限りの助けを事前に感謝します。

4

1 に答える 1

1

こちらをご覧ください。カメラボタンを使用することをお勧めします。これは、他のシステムボタンをオーバーロードするよりも確かに優れています。

于 2012-06-04T09:39:49.077 に答える