我正在尝试将这两个答案结合起来:
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在不抛出异常的情况下解析。
答案 0 :(得分:0)
有同样的问题。 Web上有一个非常受欢迎的教程,它解释了如何安装或卸载快捷方式。甚至一些stackoverflow答案也只是该教程的副本。如果您已经按照该教程进行操作,这可能是您无法卸载快捷方式的原因:
不要忘记添加:
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
到你的清单。许多人忘了它,因为教程本身告诉你添加安装快捷方式的权限,但没有提到卸载它所需的权限。