我有一个应用程序,我也从代码中创建了一个主屏幕快捷方式。我的应用支持多种语言。当我在手机上更改语言时,应用程序名称会在启动器屏幕中正确更改。但主屏幕快捷方式的名称不会更改。另一方面,如果我首先更改语言然后安装应用程序,主屏幕快捷方式将包含正确的名称。
根据我在这篇文章中的类似问题:
Application title for homescreen shortcut does not change on phone language change
人们建议我这是不可能的,所以我已经从代码中明确地处理了它。但是现在我看到手机上的一些应用程序,名称会随着设备语言的变化而自动更改。有人可以告诉我是否有可能?如果是的话,你能给我一些指示。答案 0 :(得分:1)
我终于可以使用以下代码:
public void createShortcut(){
appPreferences = PreferenceManager.getDefaultSharedPreferences(this);
isAppInstalled = appPreferences.getBoolean("isAppInstalled", false);
if(!isAppInstalled){
Intent HomeScreenShortCut= new Intent(getApplicationContext(),
BrowserLauncherActivity.class);
HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.addCategory(Intent.CATEGORY_LAUNCHER);
HomeScreenShortCut.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
HomeScreenShortCut.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
addIntent.putExtra("duplicate", false);
getApplicationContext().sendBroadcast(addIntent);
//Make preference true
SharedPreferences.Editor editor = appPreferences.edit();
editor.putBoolean("isAppInstalled", true);
editor.commit();
}
}
具体来说,这行就是诀窍:
HomeScreenShortCut.addCategory(Intent.CATEGORY_LAUNCHER);
希望它有所帮助。