This is my code when I press the volume up button to next / prev songs :
#Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
prevSongs();
return true;
} else if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)) {
nextSongs();
return true;
} else return super.onKeyDown(keyCode, event);
}
But when the application exits (with the home button to return to the home screen) and I press the volume up button again, it does not work.
How does it work whether it's in or out of the app?
Thank !
You need to create a service to handle your playing media. When you exit the app, you can't listen to volume events, but in service you can do it. Also, listening to volume keys to change songs is a bad idea. You should use a notification with actions (buttons).
Related
I have attached a physical keyboard to an Android tablet using USB. How can I call a function or perform some action in an Android app on pressing a paticular key, for example when pressing the zero key?
How could I implement the below code (for the zero key)?
#Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_A:
{
// your Action code
return true;
}
}
return super.onKeyDown(keyCode, event);
}
It was such a silly mistake i didnt import Keyevent ..
I have a custom device with a custom button and I need to handle an hardware Button Events/Intents:
every time I press the button it generates a PTT Press Action and I need to open my custom application, is there a way to do this?
If by custom device, you mean custom AOSP. Then make sure, it's button bound to events, this should be done with low level device driver configuration. And it's complicated work. Next, make sure you receive your click in next events.
Try to either use dispatch key event on Activity work:
#Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (event.getAction() == KeyEvent.ACTION_UP){
enter();
return true;
}}
return super.dispatchKeyEvent(event);
};
On on key event with Android View which is in focus.
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
/* This is a sample for handling the Enter button */
return true;
}
return false;
}
Hi i have a push to talk application. My application does not continue to run when i press the power button and lock the screen. I am using wake lock with the flag PARTIAL_WAKE_LOCK. How can i provide my application to get voice messages when the user presses the power button.
You can get the event of keypress of Power button
#Override
public boolean dispatchKeyEvent(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER)
{
// Write your logic
return true;
}
return super.dispatchKeyEvent(event);
}
Hope this will help you..
I'm developing an Android application and I have the following code lines:
#Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME) {
moveTaskToBack(true);
return true;
}
[... SOME MORE CODE ...]
}
When I test it on the emulator, it works perfectly and it closes the app and opens it at the some point as before. But when I load the APK on a real device, it always stops the application and starts it new, when I open it again. With the loading screen.
Where is the problem?
Have you tried saving the state of the activity ? the solution is here
I'm doing an Android app and I would know if this was possible:
When the user press the return button, it does the same action as the home button.
Following the question I linked: Override back button to act like home button:
#Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
Should be the solution.
This overrides the backbutton, and puts the task to the back. Which emulates hiding like the home button. Read the other question for more details, and solutions.