Question

I'm implementing a screenshot feature for Android 2.3 (I know that ICS has a screenshot feature already). I'm using the Android Screenshot Library (ASL for short) project as a base, and I'm modifying it to suit my needs. I can also freely modify Android's source code for it. The goal is to have something like what the Galaxy Note does: you take a screenshot with a key press combo and then an editor shows up which allows you to change the image however you like. You could take a screenshot anywhere: on the main screen, while using apps, etc.

Right now I have 3 working parts: a native binary that captures the screen buffer, a service that talks to the native binary and retrieves the screenshot, and the editor. But I'm not sure how I could join the 3 things together. The native binary can be added to the Android prebuilt part and init.rc can be modified to execute it as root when booting (I still have to do this though). The editor is a simple app that can be included in Android as well. But I still can't figure out what to do with the service.

Ideally I'd like to capture a key press combo (say power button and volume down, or maybe two of the front buttons), which would trigger the service. The service would then call the binary to take a screenshot and launch an intent to open the editor with the screenshot. However, as far as I know a service cannot catch key presses. Besides, the service has to be bound somewhere in order to know when it has to take a screenshot, so I guess that I should modify Android itself to start the service and bind to it at startup, but the documentation regarding Android source code is lacking and I have no clue where to start looking.

Does anyone know what component of Android is in charge of the key presses, and where I should bind my service? Is my approach even possible at all?

Thank you in advance for any possible help.

Was it helpful?

Solution

Take a look here. It suggest using the camera button, which is certainly better than overloading other system buttons.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top