无法创建主屏幕快捷方式

时间:2014-02-27 04:17:17

标签: android android-intent

在我的应用中,我使用以下代码为我的应用创建主屏幕快捷方式:

            HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
            HomeScreenShortCut.putExtra("duplicate", false);
            //shortcutIntent is added with addIntent
            Intent addIntent = new Intent();
            addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
            addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Handbook Manual");
            addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                    Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                            R.drawable.ic_launcher));
            addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
            getApplicationContext().sendBroadcast(addIntent);

这很好用,快捷方式正在创建。但是,我不想硬编码快捷方式的名称,而是想从字符串文件中给出它:

            addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, R.string.app_name);

但是在进行此更改之后,没有创建快捷方式,这真的很奇怪。我需要这个,因为我的应用程序支持多种语言,甚至应用程序的名称都基于语言。我正在测试三星Galaxy S3。

请帮助..

2 个答案:

答案 0 :(得分:1)

您尝试在应用中使用此编码

addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name));

而不是

  addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, R.string.app_name);

我希望这有帮助你

答案 1 :(得分:1)

这是!

您是否尝试过使用getString(R.string.app_name)?请记住R.string.app_name是整数,而不是字符串。