Не удалось запустить ярлык: приложение не установлено на вашем телефоне - PullRequest
6 голосов
/ 01 октября 2010

Я пытаюсь создать ярлык на рабочем столе для одного из моих действий в 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();

И я добавил действие MAIN в свою деятельность:

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

В результате приложение нехочу запустить!

В Logcat все вроде нормально:

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) }

А в Home скажите, что приложение не установлено.

Пожалуйста, помогите мне, яполностью потерян и потратил несколько часов, пытаясь решить проблему и прочитать всю информацию, которую я могу получить.

Спасибо большое!

Ответы [ 2 ]

9 голосов
/ 11 февраля 2011

Это может произойти, если ваша активность была дважды объявлена ​​в вашем AndroidManifest.xml, сначала как средство запуска, а затем просто объявлено как:

<activity android:name=".MyActivity" />
9 голосов
/ 01 октября 2010

Попробуйте это:

  1. избавиться от <intent-filter>
  2. избавьтесь от ACTION_MAIN и просто используйте new Intent(this, MyActivity.class)
  3. добавить android: exported = "true" для вашего элемента в манифесте
...