应用未安装快捷方式

时间:2014-02-22 22:33:21

标签: android

这是我在主屏幕上制作快捷方式的代码。 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();

}

}

1 个答案:

答案 0 :(得分:0)

您不需要使用ApplicationContext,使用this(Activity)就可以了

我没有测试过这个理论,但我猜你的问题是Intent intent = new Intent();,请尝试使用PendingIntent

您的shortcutIntent还应该采取特定于您的应用(或架构类型)或您要打开的类的操作。您提供的操作是通用的,可能会导致您的问题(设置操作会覆盖您在创建意图时传入的内容,这里没有必要)

在不询问用户的情况下创建快捷方式也不是一个好主意,它可能会惹恼他们将其作为恶意软件卸载