Как обнаружить ярлык на главном экране
У меня есть приложение, которое позволяет вам создавать "ярлыки" на главном экране. Но могу ли я обнаружить, что "ярлыки" уже существуют, мне не нужно было создавать его снова.
Спасибо.
Ответы
Ответ 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
}
Если пользователь удалит данные пользователя, он добавит еще один ярлык на главный экран, но я могу жить с этим, так как большинство пользователей не удаляют такие вещи в любом случае, если они не удаляют приложение. Надеюсь, это поможет!