2

我可以使用以下方法创建应用程序快捷方式。

  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,不幸的是它没有用。如果这是可行的,请告诉我哪里出错了。

谢谢。

4

1 回答 1

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);


      }

谢谢。

于 2013-05-15T05:25:21.273 回答