Not able disable Home button on specific android devices

后端 未结 3 1204
春和景丽
春和景丽 2020-11-27 06:29

I know this question has been asked many times and the answer is always \"No we cant disable home button\".

I have a little different query to ask.

I wrote s

3条回答
  •  有刺的猬
    2020-11-27 07:22

    As mentioned in my question itself for devices below 2.3.6 OS overriding keypress() functions work well.

    Issue starts with 2.3.6 onwards. I don't know what these device vendors have done but keypress() function does not functions same on all devices.

    Also from ICS onwards google has stopped using keypress() function once for all.

    So how do we do it.

    The way i see it, if we are trying to override home button then its not possible, but definitely we can listen to it.

    In our android manifest we use filter than this makes our activity as home replacement screen. Now when you will press home button the content resolver pop up will always come up and ask which application i.e the default launcher or your application should respond to home button click. You can always choose your application there.

    But this does not overrides or disables home button. whenever you will press home button same thing will be repeated again and again till you make your application default , by clicking the use as default checkbox given in the content resolver pop up.

    Now once you have chosen your application as default home press will always launch your application.

    Done... no. The issue which arises know is if you move out of your application the home button still launches your application. How to get rid of it once your work is done.

    What we have to do is while closing or calling finish() on our activity , prior to it we should set the package setting to default by using:

    paramPackageManager1.setComponentEnabledSetting(localComponentName2, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 1);

    This will de associate the home button from your activity.

提交回复
热议问题