这是我在主屏幕上制作快捷方式的代码。 Everthing工作正常但当我点击主屏幕上的快捷方式时,它显示“App not installed”。我想修理它。
码
appPref = getSharedPreferences("isFirstTime", 0);
isFirstTime = appPref.getBoolean("isFirstTime", true);
if (isFirstTime) {
// Create explicit intent which will be used to call Our application
// when some one clicked on short cut
Intent shortcutIntent = new Intent(getApplicationContext(),
MainActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent intent = new Intent();
// Create Implicit intent and assign Shortcut Application Name, Icon
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Get Quote");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(
getApplicationContext(), R.drawable.ic_launcher));
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);
// Set preference to inform that we have created shortcut on
// Homescreen
SharedPreferences.Editor editor = appPref.edit();
editor.putBoolean("isFirstTime", false);
editor.commit();
}
}
答案 0 :(得分:0)
您不需要使用ApplicationContext,使用this
(Activity)就可以了
我没有测试过这个理论,但我猜你的问题是Intent intent = new Intent();
,请尝试使用PendingIntent
您的shortcutIntent还应该采取特定于您的应用(或架构类型)或您要打开的类的操作。您提供的操作是通用的,可能会导致您的问题(设置操作会覆盖您在创建意图时传入的内容,这里没有必要)
在不询问用户的情况下创建快捷方式也不是一个好主意,它可能会惹恼他们将其作为恶意软件卸载