在我的应用中,我使用以下代码为我的应用创建主屏幕快捷方式:
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。
请帮助..
答案 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
是整数,而不是字符串。