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);
}
通用.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);
}
我在某处读到这些方法在
Android 10(R)
中不起作用,但对我来说,它不适用于某些 Android 10(Q)
设备。就像我在这些设备中检查诺基亚 6.1 Plus(10)、三星 s9(10)、模拟器(10) 一样,它不起作用,如果我执行上面的代码,应用程序图标仍然可见,点击它重定向到设置 > 应用程序信息屏幕,当我点击前台服务通知时,它会将我重定向到特定 Activity 。
在我检查过的 RealMe X2 和 C3 (10) 中,应用程序图标正确隐藏。
我需要确切的原因和解决方案,应用程序仅取决于此功能,如果有任何替代方式,请告诉我。
最佳答案
您无法在 Android 10 或更高版本中隐藏应用图标。
关于Android 隐藏自己的应用程序图标在某些 android 10 设备中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61772008/