我正在处理我的应用。有两个应用程序,一个应该隐藏。并由另一个开放。我在app A中尝试这样的代码
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
并尝试按代码
打开应用A.Intent intent = MainActivity.this.getPackageManager()
.getLaunchIntentForPackage("com.example.hideicon");
startActivity(intent);
但它不起作用。
答案 0 :(得分:1)
隐藏应用图标
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(Test.this,com.example.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
用于显示应用图标
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(Test.this, com.example.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
答案 1 :(得分:0)
由于您已禁用组件并且在启动之前未启用它,因此无效。要禁用/启用它需要权限。
答案 2 :(得分:0)
答案 3 :(得分:-1)
我解决了我的问题。首先,您必须通过删除
来隐藏您的应用图标 <category android:name="android.intent.category.LAUNCHER"
第二,你可以在app B中添加代码
Intent intent = new Intent("com.example.hideicon");
intent.setComponent(ComponentName
.unflattenFromString("com.example.hideicon/com.example.hideicon.MainActivity"));
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);