0

通过删除 AndroidManifest.xml 中的以下意图过滤器,它可以在安装后删除图标。

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

但是我在启动时尝试了以下操作,而不是删除图标,但重新启动后图标仍然存在。我已经添加了权限,这个重启接收器是工作的。

public class BootBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        PackageManager p = context.getApplicationContext().getPackageManager(); 
        ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
        p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

    }
}

或者将启动放在服务上,并且 AndroidManifest.xml 意图过滤器没有被删除,服务正在运行并工作。

package com.example.removeicon;
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        PackageManager p = getPackageManager();
        ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
        p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        startService();
    }
4

2 回答 2

3
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
p.setComponentEnabledSetting(componentName, 
    PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

请注意,该图标可能要等到下次重新启动后才会消失。

于 2012-12-05T05:02:18.103 回答
2

试试下面的代码,这个对我有用

PackageManager p = ctx.getPackageManager(); 
         p.setComponentEnabledSetting(((Activity)ctx).getComponentName(),
         PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
于 2015-04-01T11:52:42.333 回答