Android隐藏自己的应用程序图标在某些Android 10设备中不起作用
AppPackageManager.javaAndroid隐藏自己的应用程序图标在某些Android 10设备中不起作用,android,android-10.0,Android,Android 10.0,AppPackageManager.java AppPackageManager loAppPackageManager = new AppPackageManager(foContext); if (isAppHidden()) { loAppPackageManager.disableComponent(".Splash"); } else { loAppPackageManager.enableComponent(".Splash"); } Commo
AppPackageManager loAppPackageManager = new AppPackageManager(foContext);
if (isAppHidden()) {
loAppPackageManager.disableComponent(".Splash");
} else {
loAppPackageManager.enableComponent(".Splash");
}
Common.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);
}
我在某个地方读到,这些方法在Android 10(R)
上不起作用,但对我来说,它在一些Android 10(Q)
设备上不起作用
就像我在诺基亚6.1 Plus(10)、三星s9(10)、Emulator(10)中检查的那样,这些设备中的应用程序不起作用,如果我执行上述代码,应用程序图标仍然可见,单击它重定向到设置>应用程序信息屏幕,同时单击前台服务通知,它会将我重定向到特定活动
在我选中的RealMe X2和C3(10)中,应用程序图标正确隐藏
我需要这个确切的原因和解决方案,应用程序只取决于此功能,如果有任何其他方式,请让我知道 你无法在Android 10和11中隐藏应用程序图标我曾见过一个应用程序,在我启用Android 10中的隐藏图标后,其图标被隐藏。所以有一种方法。不知道怎么做。到目前为止你找到解决办法了吗?
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);
}