No se ha podido atajo de inicio: La aplicación no está instalada en su teléfono
-
26-09-2019 - |
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!
Solución
Prueba esto:
- deshacerse de la
<intent-filter>
- deshacerse de la
ACTION_MAIN
y sólo tiene que utilizarnew Intent(this, MyActivity.class)
- 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