Я заметил, что некоторые приложения на Android Market автоматически создают ярлыки на рабочем столе после загрузки и установки на ваше устройство, а некоторые нет. Как я могу реализовать это поведение?
Как включить автоматическое создание ярлыков после загрузки и установки приложений с Android Market?
Ответ 1
Отправьте намерение Launcher. Передайте намерение INSTALL_SHORTCUT с EXTRA_SHORTCUT_NAME и EXTRA_SHORTCUT_INTENT. Дополнительный EXTRA_SHORTCUT_DUPLICATE можно использовать для управления дубликатными ярлыками. подробности можно найти в Launcher2 project в репозиторий AOSP.
Пожалуйста, будьте осторожны с этим, некоторые пользователи могут не оценивать создание ярлыка без разрешения.
Вот несколько псевдокодов:
Intent installIntent = new Intent(InstallShortcutReceiver.ACTION_CREATE_SHORTCUT);
Intent myAppIntent = new Intent(Context.getPackageContext(), MyActivity.class);
installIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, Context.getString(R.string.app_name));
installIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myAppIntent);
installIntent.putExtra(Intent.SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
Context.sendBroadcast(installIntent);
В Intent есть дополнительная информация, а также альтернативный намерение action.
Ответ 2
Оказывается, Android Market автоматически устанавливает ярлык на рабочем столе при загрузке приложения. Я замечаю это поведение по умолчанию на планшете Android 3.1 с целевым приложением Honeycomb (3.0+). Похоже, что это не стандартное соглашение для приложений, работающих на предыдущих версиях Android, где явный пользовательский ввод/разрешение требуется при первой загрузке/запуске приложения.
Ответ 3
Я тестировал эту демонстрацию. И добавьте addShortcut() в onCreate(). Затем развертывание из IntelliJ, мой GEL (Google Experience Launcher) создает ярлык для первого запуска. Я боюсь, что он будет продолжать создавать ярлыки, но, похоже, не создаст другого ярлыка, если приложение будет запущено в следующий раз. Попробуйте сами, если вам нужно.
private void addShortcut() {
//Adding shortcut for MainActivity
//on Home screen
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, getString(R.string.app_name));
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.drawable.ic_launcher));
addIntent
.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
Ответ 4
добавление ярлыков
private void addShortcut() {
//Adding shortcut for MainActivity
//on Home screen
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, "ApplicationName");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.drawable.ic_launcher));
addIntent
.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
для удаления ярлыка
private void removeShortcut() {
//Deleting shortcut for MainActivity
//on Home screen
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, "ApplicationName");
addIntent
.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
разрешений
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />