AppPackageManager loAppPackageManager = new AppPackageManager(foContext);
if (isAppHidden()) {
loAppPackageManager.disableComponent(".Splash");
} else {
loAppPackageManager.enableComponent(".Splash");
}
AppPackageManager.java
// Disable Application component
public void disableComponent(String fsClassName) {
fsClassName = msPackageName + fsClassName;
moPackageManager.setComponentEnabledSetting(new ComponentName(
msPackageName, fsClassName),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Log.i(TAG, "Disabled: " + fsClassName);
Common.removeShortcut(moContext);
}
// Enable Application component
public void enableComponent(String fsClassName) {
fsClassName = msPackageName + fsClassName;
moPackageManager.setComponentEnabledSetting(new ComponentName(
msPackageName, fsClassName),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
Log.i(TAG, "Enabled: " + fsClassName);
}
Common.java
public static void removeShortcut(Context foContext) {
// Deleting shortcut for MainActivity
// on Home screen
Intent loShortcutIntent = new Intent(foContext, Splash.class);
loShortcutIntent.setAction(Intent.ACTION_MAIN);
Intent loAddIntent = new Intent();
loAddIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, loShortcutIntent);
loAddIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, foContext.getString(R.string.APP_NAME));
loAddIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
loAddIntent.putExtra("duplicate", false);
foContext.sendBroadcast(loAddIntent);
}
I read somewhere these method did not work from Android 10(R), but for me it is not working on some of the Android 10(Q) devices.
Like I checked in Nokia 6.1 Plus(10), Samsung s9(10), Emulator(10) in these devices it did not work, if I execute above code the app icon still visible and on click it redirect to settings > app info screen, while i click on foreground service notification it redirect me to particular activity.
In RealMe X2 and C3 (10) I checked, the app icon hide properly.
I need exact reason and solution for this, app depends on this functionality only, if there is any alternate way, please let me know.