title: Is it possible to create an Android Service that listens for hardware key presses?
body: <p>I'd like to run an Android background service that will act as a keylistener from the home screen or when the phone is asleep.  Is this possible?</p>
  
  <p>From semi-related examples online, I put together the following service, but get the error, "onKeyDown is undefined for the type Service".  Does this mean it can't be done without rewriting Launcher, or is there something obvious I'm missing?</p>
  
  <pre><code>public class ServiceName extends Service {
  
      @Override
      public void onCreate() {
          //Stuff
      }
  
      public IBinder onBind(Intent intent) {
          //Stuff
          return null;
      }
  
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
          if(event.getAction() == KeyEvent.ACTION_DOWN) {
          switch(keyCode) {
          case KeyEvent.KEYCODE_A:
              //Stuff
              return true;
          case KeyEvent.KEYCODE_B:
              //Stuff
              return true;
  
              //etc.
          }
          }
  
          return super.onKeyDown(keyCode, event);
      }
  }
  </code></pre>
  
  <p>I realize Android defaults to the search bar when you type from the home screen, but this really is just for a very particular use.  I don't really expect anyone but me to want this.  I just think it'd be nice, for example, to use the camera button to wake the phone.</p>