代码之家  ›  专栏  ›  技术社区  ›  Waza_Be

启动快捷方式失败:手机上未安装应用程序

  •  6
  • Waza_Be  · 技术社区  · 14 年前

    我正在尝试创建一个桌面快捷方式到我的Android活动之一。 我使用的代码适用于我读过的每个tuto示例:

        final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
        ComponentName name = new ComponentName(getPackageName(), ".MyActivity");
        shortcutIntent.setComponent(name);
    
        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
    
        final Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    
        intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla");
        intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
    
        intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        sendBroadcast(intent);
        finish();
    

    我在我的活动中添加了主要的动作:

        <activity android:label="@string/app_name" android:name=".MyActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    

    结果是应用程序不想启动!

    在《日志猫》中,一切似乎都很好:

    10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) }
    

    家庭告诉我应用程序没有安装。

    请帮帮我,我完全迷路了,花了几个小时试图解决这个问题,并阅读我能得到的所有信息。

    非常感谢!

    2 回复  |  直到 8 年前
        1
  •  9
  •   Chitrang omid nematollahi    8 年前

    1. <intent-filter>
    2. ACTION_MAIN new Intent(this, MyActivity.class)
        2
  •  9
  •   olafure    8 年前

    <activity android:name=".MyActivity" />