我需要创建其他应用程序的主页快捷方式。为此,我需要获取可绘制图标的 ID。
我可以得到实际的drawable,但我不知道如何在不知道drawable 名称的情况下获取它的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);
}