如何确定是否存在主屏幕快捷方式?

时间:2012-02-17 02:40:49

标签: android

有没有办法确定是否有特定的主屏幕快捷方式 存在?

我的应用程序在设备的主屏幕上安装了一个快捷方式 在某些条件下的启动时间,我不想重复 出现的快捷方式。我也不希望Toast消息出现说 每次都有“快捷方式创建”或“快捷方式已经存在” 设备启动。我发现了一个没有文档的Intent Extra EXTRA_SHORTCUT_DUPLICATE将阻止重复的快捷方式 正在安装,但Launcher仍然显示“快捷方式” 存在“Toast message。我宁愿不依赖这个无证件 如果有支持的技术,则为Intent Extra。

3 个答案:

答案 0 :(得分:0)

不是那种侵扰性的吗?为什么不只添加一次,让用户决定是否要保留它?

答案 1 :(得分:0)

当您的应用创建快捷方式时,为布尔值设置“true”并将其存储在存储中(例如小文件或共享偏好)。当您的应用尝试创建快捷方式时,检查它的值。

答案 2 :(得分:-1)

**// Checking if ShortCut was already added
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        boolean shortCutWasAlreadyAdded = sharedPreferences.getBoolean("PREF_KEY_SHORTCUT_ADDED", false);
        if (shortCutWasAlreadyAdded) return;
        Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class);
        shortcutIntent.setAction(Intent.ACTION_MAIN);
        Intent addIntent = new Intent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "SBM");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher));
        addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        sendBroadcast(addIntent);
        // Remembering that ShortCut was already added
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("PREF_KEY_SHORTCUT_ADDED", true);
        editor.commit();**