Как обнаружить ярлык на главном экране

У меня есть приложение, которое позволяет вам создавать "ярлыки" на главном экране. Но могу ли я обнаружить, что "ярлыки" уже существуют, мне не нужно было создавать его снова. Спасибо.

Ответы

Ответ 1

У меня была такая же проблема. Я не думаю, что это возможно для вас, чтобы сказать, если оно есть, но я думаю, что то, что я использовал, будет работать и на вас.

Просто удалите ярлык перед его добавлением!

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"/>    

Ответ 2

Я не знаю, можно ли обнаружить ярлык или нет, но вместо удаления и последующей установки вы можете использовать поле Extra в качестве

intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
...
intent.putExtra("duplicate", false);
...
sendBroadcast(intent);

Ответ 3

Я думаю, что нашел хороший способ убедиться, что ярлык не добавляется более одного раза, а также сообщение Toast, чтобы уйти. Сделайте int или boolean (я использовал int) и поставлю следующее в onResume:

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

Если пользователь удалит данные пользователя, он добавит еще один ярлык на главный экран, но я могу жить с этим, так как большинство пользователей не удаляют такие вещи в любом случае, если они не удаляют приложение. Надеюсь, это поможет!