добавить ярлык запуска Android на главный экран

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

res, app_id и p в

BitmapDrawable bd = (BitmapDrawable) (res.get(app_id).activityInfo.loadIcon(p).getCurrent());

Вот его код:

Intent shortcutIntent = new Intent();
shortcutIntent.setClassName(ai.packageName, ai.name);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.addCategory(Intent.ACTION_PICK_ACTIVITY);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);

BitmapDrawable bd=(BitmapDrawable)(res.get(app_id).activityInfo.loadIcon(p).getCurrent());
Bitmap newbit;
newbit=bd.getBitmap();
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, newbit);

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

Кроме того, есть ли что-нибудь, что я должен добавить в файл манифеста?

РЕДАКТИРОВАТЬ:

я заменяю

BitmapDrawable bd=(BitmapDrawable)(res.get(app_id).activityInfo.loadIcon(p).getCurrent());
Bitmap newbit;
newbit=bd.getBitmap();
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, newbit);

с участием

intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
        Intent.ShortcutIconResource.fromContext(this, R.drawable.launcher_icon));

и это все еще не работает. Вот почему я задаюсь вопросом о файле манифеста.


person Cote Mounyo    schedule 26.06.2013    source источник
comment
Прочтите документацию по вызываемым функциям. Описано, что означают эти параметры.   -  person Michael Butscher    schedule 27.06.2013
comment
Похоже, вы не приложили никаких усилий, чтобы понять и изменить код самостоятельно.   -  person Michael Butscher    schedule 27.06.2013
comment
@MichaelButscher знаете ли вы, почему мой новый код не работает? Есть что добавить в манифест?   -  person Cote Mounyo    schedule 27.06.2013
comment
Надо бы уточнить, что значит не работает. Он компилируется? Если да, то что происходит при его запуске, какие сообщения об ошибках появляются? В манифесте вам нужно <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />, но это может быть не единственная ваша проблема   -  person Michael Butscher    schedule 27.06.2013
comment
@MichaelButscher, это все, чего не хватало. Спасибо! Не возражаете ли вы сделать репост в качестве ответа, чтобы я мог принять его? Спасибо за помощь.   -  person Cote Mounyo    schedule 27.06.2013


Ответы (1)


В манифесте вам нужно

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
person Michael Butscher    schedule 26.06.2013
comment
Каждый раз, когда я запускаю приложение, оно создает дополнительный ярлык. Есть ли способ указать, что будет создан только один ярлык? - person Cote Mounyo; 27.06.2013
comment
Вы должны поместить код в соответствующую функцию обработки меню или в прослушиватель кнопок. - person Michael Butscher; 27.06.2013