我可以使用以下方法创建应用程序快捷方式。
public static void CreateShortCut(Context context, String ShortCutName){
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutintent.putExtra("duplicate", false);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, ShortCutName);
/* Parcelable icon = Intent.ShortcutIconResource.fromContext(context.getApplicationContext(), R.drawable.iconfromresource); */ // This work great
Parcelable icon = BitmapFactory.decodeFile("/sdcard/myownappicon.png"); /* This doesnt work, Doesnt show any error either.... it just gives Android Default icon instead of my own myownappicon.png */
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(context.getApplicationContext() , DynamicSplashScreen.class));
context.sendBroadcast(shortcutintent);
}
现在我的问题是,我们可以使用用户指定的SD卡图标文件创建应用程序快捷方式吗?它可行吗?
我已经尝试使用带有decodefile的Bitmapfactory,遗憾的是它没有用。如果这是可行的,请告诉我哪里出错了。
感谢。
答案 0 :(得分:3)
能够找到我自己的问题的解决方案... BitmapFactory.decodeFile将做到这一点。
public static void CreateShortCut(Context context, String ShortCutName, String ImageFileName){
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutintent.putExtra("duplicate", false);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, ShortCutName);
Bitmap bmp = BitmapFactory.decodeFile(ImageFileName);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bmp, 72, 72, true);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON, scaledBitmap);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(context.getApplicationContext() , SplashScreen.class));
context.sendBroadcast(shortcutintent);
}
感谢。