Autore Topic: Shortcut per lanciare activity non princiale  (Letto 591 volte)

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Shortcut per lanciare activity non princiale
« il: 08 Agosto 2011, 16:38:17 CEST »
0
Cia a tutti, ho un po di dubbi........ho creato una sorta di market. Quando scarico e installo un applicazione viene creato uno shortcut sul "desktop" per lanciare l'app.

Le app in questione non sono file apk ma bensì webapp utilizzabili offline. Quindi non ho nessuna app realmente installata, bensi salvo sulla mia sd card una cartella con una pagina html e ciò che serve per visualizzarla off line (immagini, video ecc). Lo shortcut mi apre la pagina html in questione.

Ora per visualizzare la pagina html non uso il browser di default ma all'interno della mia applicazione MYMARKET ho creato un activity MYWEBVIEW che incorpora una webview a tutto schermo che visualizza le app installate.

Per lanciare le app si possono usare 2 strade. Apro MYMARKET,  entro nell'activity che visualizza la lista delle app installate e clicco su una di queste. Cos' facendo viene lanciata l'activity MYWEBVIEW che mostra la pagina html. E questo funziona.

Il secondo modo invece è semplicemente quello di cliccare su uno degli shortcut che ho sul desktop. A questo punto vorrei che si aprisse la mia applicazione MYMARKET direttamente sull'activity MYWEBVIEW mostrandomi l'html...........il problema è che questo secondo metodo non funziona.

Questo è il codice con cui creo lo shortcut:

Codice (Java): [Seleziona]
Intent shortcutIntent = new Intent(this, MYWEBVIEW.class);
String fileHtml = trovaHtml(path);
shortcutIntent.putExtra("appToLaunch", appId);
shortcutIntent.putExtra("fileHtml", fileHtml);
shortcutIntent.setAction(Intent.ACTION_VIEW);

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, dirAppName);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
this.sendBroadcast(addIntent);

e l'errore che mi da è:

Codice: [Seleziona]
08-08 14:15:37.907: ERROR/Launcher(165): Launcher does not have the permission to launch Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MyAppActivity bnds=[3,217][77,296] (has extras) }. Make sure to create a MAIN intent-filter for the corresponding activity or use the exported attribute for this activity. tag=ShortcutInfo(title=myFile) intent=Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3,217][77,296] (has extras) }

08-08 14:15:37.907: ERROR/Launcher(165): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3,217][77,296] (has extras) } from ProcessRecord{405875c8 165:com.android.launcher/10026} (pid=165, uid=10026) requires null


Il problema penso abbia qualcosa a che fare con il fatto che non lancio l'activity principale del mio marlet (FinestraPrincipaleActivity) nesì un'altra activity............il problema è che io voglio proprio andare direttamente all'activity con la webview se devo fare tutto il giro gli shortcut perdon il loro senso.............sapete come risolvere?

P.S so che creare gli shortcut in quel modo è deprecato, ma sorvoliamo..............


E una seconda domanda, è possibile lanciare due istanze della stessa applicazione............mettiamo ad esempio che sto navigando nel market, clicco home (quindi il market va in background) dopodiche clicco su uno shortcut che mi deve lanciare l'activity con la webview. E' possibile lanciare una nuova istanza del market in modo da avere la prima istanza x navigare tra le app e la seconda che mi visualizza l'html?

Grazie mille