Pregunta

Estoy intentando crear un acceso directo a uno de mi actividad en Android. Yo uso el código que el trabajo en todos los ejemplos tuto He leído:

    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();

Y añadió la acción principal de mi actividad:

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

El resultado es que la aplicación no se quiere poner en marcha!

En el Logcat todo parece bien:

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

y el hogar dime que la aplicación no está instalada.

Por favor, ayúdame, estoy totalmente perdido y pasar unas horas tratando de resolver el problema y leer toda la información que pueda conseguir.

Gracias mucho!

¿Fue útil?

Solución

Prueba esto:

  1. deshacerse de la <intent-filter>
  2. deshacerse de la ACTION_MAIN y sólo tiene que utilizar new Intent(this, MyActivity.class)
  3. añadir androide: exportados = "true" a su elemento en el manifiesto

Otros consejos

Esto puede suceder si usted tiene su actividad declarada dos veces en su AndroidManifest.xml, primero como lanzador y luego simplemente declarada como:

<activity android:name=".MyActivity" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top