未删除卸载快捷方式

时间:2015-03-09 21:04:29

标签: android android-intent

我正在尝试将这两个答案结合起来:

https://stackoverflow.com/a/22137880/2746924

https://stackoverflow.com/a/7461521/2746924

我存储Uri的位置,然后再次解析它以卸载快捷方式。但是,使用以下内容时,快捷方式仍然存在。

这是uri i store:

String shortcutUri = shortcutIntent.toUri(0);

这是我尝试删除快捷方式的方法:

private static void removeShortcut(String appPackage, String appName, String oldShortcutUri) {

    Intent shortcutIntent = null;

    try {
        shortcutIntent = Intent.parseUri(oldShortcutUri, 0);
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    Intent addIntent = new Intent();

    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
    addIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");

    MainApplication.getAppContext().sendBroadcast(addIntent);
}

appName是相同的,并且shortcutIntent在不抛出异常的情况下解析。

1 个答案:

答案 0 :(得分:0)

有同样的问题。 Web上有一个非常受欢迎的教程,它解释了如何安装或卸载快捷方式。甚至一些stackoverflow答案也只是该教程的副本。如果您已经按照该教程进行操作,这可能是您无法卸载快捷方式的原因:

不要忘记添加:

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

到你的清单。许多人忘了它,因为教程本身告诉你添加安装快捷方式的权限,但没有提到卸载它所需的权限。