如何在主屏幕中检测快捷方式

时间:2011-01-12 11:47:45

标签: android

我有一个应用程序,允许您在主屏幕中创建“快捷方式”。但我可以检测到“快捷方式”是否已经存在,我不必再次创建它。 感谢。

3 个答案:

答案 0 :(得分:10)

我遇到了同样的问题。我不认为它可能会告诉你它是否存在,但我认为我使用的也适合你。

只需在添加快捷方式前卸载快捷方式即可!

intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);

intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);

请确保将以下内容添加到清单文件中。

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

答案 1 :(得分:8)

我不知道是否可以检测到快捷方式,但您可以使用Extra字段作为

而不是卸载然后再安装。
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
...
intent.putExtra("duplicate", false);
...
sendBroadcast(intent);

答案 2 :(得分:1)

我认为我找到了一种很好的方法来确保快捷方式不会多次添加,并且Toast消息也会消失。创建一个int或boolean(我使用了一个int)并将以下内容放在onResume:

if(shortcut != 1) //or shortcut == true
{
    ...(shortcut code)...
    shortcut = 1;
    savePref("shortcut", shortcut); //overriding method to save int's or booleans
}

如果用户删除用户数据,那么它将添加另一个快捷方式到主屏幕,但我可以忍受,因为大多数用户无论如何都不会删除那种东西,除非他们正在卸载应用程序。希望这有帮助!