从主屏幕删除快捷方式

时间:2014-05-19 10:37:06

标签: android shortcut android-package-managers

我想在android中删除所有屏幕中的所有快捷方式。我成功了一次,但不知怎的,它在下次执行后停止了工作。我可以请你帮我找出会出现什么问题吗?没有堆栈,没有错误,只是我点击没有任何反应。当我第一次成功时,我得到了许多描述" X被删除"。

这是我的代码:

private void method0() {
    final Intent anyIntent = new Intent(Intent.ACTION_MAIN, null);
    List<ResolveInfo> pkgAppsList = this.getPackageManager().queryIntentActivities(anyIntent, 0);
    for (final ResolveInfo resolveInfo : pkgAppsList) {
                method(resolveInfo);
    }
}

private void method(ResolveInfo resolveInfo) {
    try {
        final PackageManager pm = getPackageManager();
        String packageName = ((ActivityInfo) resolveInfo.activityInfo).packageName;
        String appName = (String) resolveInfo.loadLabel(pm);
        ComponentName componentName = new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name);

        if (packageName.startsWith("com.google") || (packageName.startsWith("com.android")))
            return;

        final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
        shortcutIntent.setComponent(new ComponentName(packageName, componentName.getClassName()));

        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
        intent.setComponent(new ComponentName(packageName, componentName.getClassName()));
        intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");

        sendBroadcast(intent, null);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我还添加了许可

<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />   

我正在使用Nexus 4的标准启动器 - 来自谷歌网站的原始图像ROM。

1 个答案:

答案 0 :(得分:0)

看起来你没有使用默认的Stock安卓启动器。

请检查example。希望有所帮助。