Impossibile scorciatoia di lancio: L'applicazione non è installato sul telefono
-
26-09-2019 - |
Domanda
Sto cercando di creare un collegamento sul desktop per una delle mie attività in Android. Io uso il codice che opera in ogni esempio tuto Ho letto:
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();
E ho aggiunto L'azione principale per la mia attività:
<activity android:label="@string/app_name" android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
Il risultato è che l'applicazione non vuole lancio!
In tutto Logcat sembrare bene:
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) }
e la casa mi dicono che l'applicazione non è installata.
Please help me, io sono completamente perso e trascorrere qualche ora cercando di risolvere il problema e leggere tutte le informazioni che posso ottenere.
Grazie a un sacco!
Soluzione
Prova questo:
- sbarazzarsi del
<intent-filter>
- sbarazzarsi del
ACTION_MAIN
e basta usarenew Intent(this, MyActivity.class)
- aggiungere Android: esportato = "true" per il vostro elemento nel manifesto
Altri suggerimenti
Questo può accadere se avete la vostra attività dichiarata due volte nella tua AndroidManifest.xml, prima come un lanciatore e poi appena dichiarato come:
<activity android:name=".MyActivity" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow