他のアプリケーションのホーム ショートカットを作成する必要があります。そのためには、アイコン ドローアブルの ID を取得する必要があります。
実際のドローアブルを取得できますが、ドローアブルの名前を知らずに ID を取得する方法がわかりません。
ドローアブルの名前を見つけたり、ドローアブル オブジェクトから ID を取得したりする方法はありますか?
drawable と何度も言ったと思います。
//get icon drwable
public Drawable getIcon(String pack) {
final PackageManager pm = context.getPackageManager();
try {
return pm.getApplicationIcon(pack);
} catch (NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
public void makeShortcut(String pack){
Intent shortcutIntent;
shortcutIntent = new Intent();
shortcutIntent.setComponent(new ComponentName(pack, ".classname"));
int iconId =geIconId(pack); // a default icon for now TODO
Log.i("icon id", ""+iconId);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Intent putShortCutIntent = new Intent();
putShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
shortcutIntent);
// Sets the custom shortcut's title
putShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getAppName(pack));
putShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(
context,iconId));
putShortCutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(putShortCutIntent);
}