I want the user to be able to be hide and display the Application Launcher Icon. I found a solution at https://www.nexsoftsys.com/articles/how-to-hide-application-launcher-lcon-in-android.html I also found this same solution at Hide application icon
However, in the latter link, it says that this code which appears in both of the above
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
"will make the app NOT upgradeable from google play as the OS will not find the package after this component disabling and will not able to re-install it, unless the app is not manullay uninstalled (which is not a user friendly behaviour)"
I have tried to discover if this is true or not, but withe no luck. Can anybody answer this please ? Thanks very much in advance
You're asking us to prove a negative.
Unless that negative is explicitly articulated in the android documentation, or unless it's explicitly forbidden in the terms of services of Google Play for publishers/developers (which it does not seem to be, but I'm not a lawyer), it's actually very difficult to prove that a specific Android feature does not exist.
The only solution, that will work on all Android phones, that I know of, is to create your own custom launcher. With a custom launcher that the user installs and makes his primary launcher, you can hide any app you want from it, even itself.
Aside from that one solution, other partial solutions would be:
On Samsung and Sony phones only, you could use the Samsung Knox API and the Sony proprietary APIs. If your application is commercial in nature, expect to pay money for this.
On Samsung phones, it's also possible to give the user instructions for manually hiding the app icon himself.
If your app is actually telephony based, which it sounds like it is, you might consider moving its functionality to the cloud with a service like Twilio or Voxeo. This way, the user would only need to add a phone number to his favorites/speed dial, without needing to install anything, and you could update your cloud-based application as frequently as you wanted without needing to update the phone. And perhaps, you could even enhance the functionality of your cloud-based application with the functionality of carrier specific APIs.