Mohamed El Kayal
Mohamed El Kayal

Reputation: 319

How to control what the home button on my android wearable device does when pressed?

I have a certain activity that begins when I tap my smart watch's screen. There is a timer and bunch of stuff that happens, but the process is crucial, so I am handling certain cases or things that might happen that would disturb the flow of things.

So basically, I want to prevent the home button of my watch to exit the app and go to the homescreen while my timer is running. I keep looking this up and most people say to override the onBackPressed method. But this was for the back button, and I I realized the button is a home button not a back button.

 frameLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN)
            {
                clicked = clicked + 1;
                if (clicked == 2)
                {
                    Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
                    startTimer();
                }
                else if (clicked >= 4)
                {
                    Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
                    AlertMessage();
                }
            }
            return true;
        }
    });

this is the main method I use

Upvotes: 0

Views: 592

Answers (3)

TofferJ
TofferJ

Reputation: 4784

The general consensus is that you can't override the home button behavior on a Wear OS device, just like you can't override the home button on an Android phone. This is by design to prevent developers from preventing the user to leave an application. Even if there is a hacky way to do it, this is not officially supported and may stop working at any time in future OS versions. I highly suggest not doing it since it goes against the basic navigation model of the device.

More details, and some workarounds for common use cases where people think they need to override the home button can be found in this blog post.

Upvotes: 0

Danish
Danish

Reputation: 766

Use third part library in case if it solves your problem. Here is the link: https://github.com/shaobin0604/Android-HomeKey-Locker

Upvotes: 0

The Codepreneur
The Codepreneur

Reputation: 244

Just override the onBackPressed function.

@Override
public void onBackPressed ()
{
  //Control the flow 
 }

Upvotes: 1

Related Questions