2011-09-10 10 views
9

C'è un modo per passare un argomento personalizzato al mercato Android (o in qualsiasi altro modo) così la mia app riceve l'argomento dopo che è stato installato (ed eseguito per la prima volta).È possibile passare un argomento personalizzato al mercato Android, quindi la mia app lo riceve al primo avvio?

Lasciatemi spiegare.

  1. avviare un'intenti con argument1 = "Ciao mondo1" (argomento su misura ogni volta )
  2. installare l'applicazione da Android Market.
  3. Apre l'app per la prima volta.
  4. App mostra il msg "Ciao mondo1"

Qualsiasi caso farà, non solo l'intenzione di Android Market.

La maggior parte delle volte l'applicazione verrà installata tramite scanner di codici a barre con uno schema http vincolato. Quindi una soluzione browser è possibile anche, HTML5 lato client bagagli, (argomento negozio per browser e farlo da lì la prima volta la mia app funziona)

Aggiornamento

Una soluzione potrebbe essere quella di creare un cookie, o qualcosa al browser e poi accedervi dall'applicazione che ho installato. È possibile? In tal caso, puoi fornire alcune informazioni al riguardo? I browser possono condividere i dati con le applicazioni?

+0

Così, tanto per chiarire, si desidera che ogni singolo utente di ricevere un argomento diverso e hanno un messaggio diverso visualizzata quando si apre l'applicazione per la prima volta ? – theisenp

+0

sì, questo è l'obiettivo – weakwire

risposta

13

È possibile pubblicare un link del genere
http://market.android.com/details?id=your.package.name&referrer=your_referrer_parameter
Dopo utente clicca questo link e installa l'applicazione il ricevitore di broadcast riceverà una com.android.vending.INSTALL_REFERRER trasmissione con valore "your_referrer_parameter".

Maggiori informazioni:
http://code.google.com/mobile/analytics/docs/android/#android-market-tracking
Get referrer after installing app from Android Market
Get Android Google Analytics referrer tag

+0

wow! tag referrer potrebbe fare il lavoro in un modo molto lucido! Ci proverò domani e aggiornerò – weakwire

+0

Accetterò la tua risposta. Ma dal momento che è una risposta limitata puoi elaborare la risposta un po 'di più? (Per i futuri spettatori) – weakwire

+0

@Fedor: cosa succede se l'utente fa clic su un altro link di installazione, con un altro parametro referrer, in cui l'app è già installata sul suo dispositivo? 1. L'app verrà reinstallata o verrà avviata l'installazione precedente? 2. Se si verifica il secondo caso, il referrer sarà disponibile per l'app avviata? [modifica: sto solo realizzando quanti anni ha questa risposta, forse dovrei considerare di fare una nuova domanda piuttosto che commentare qui ...] – fpierrat

4

AFAIK quello che stai chiedendo non è possibile. Il mercato fornisce solo i file APK ai dispositivi. Tuttavia, a seconda di cosa esattamente si vuole fare ci sono probabilmente molti modi di lavorare diversi.

Qui ci sono un paio di pensieri:

Se si desidera che il mercato per fornire un argomento personalizzato che è unico per ogni utente, allora perché non ha la vostra applicazione connettersi a un server in fuga iniziale e scaricare tale argomento? Anche se il mercato fosse in grado di fornire l'argomento, sarebbe costretto a scaricarlo da te e probabilmente dovresti configurare un server per fornire al mercato l'argomento.

Se si desidera semplicemente che l'app sappia se è in esecuzione o meno per la prima volta, è possibile farlo utilizzando SharedPreference. Esegui una query se esiste una preferenza come hasAppRunBefore e, in caso contrario, sai che l'app è in esecuzione per la prima volta dall'installazione. Quindi imposta la variabile hasAppRunBefore su un valore che indica che è stata eseguita prima. Questa implementazione consentirà agli utenti di disinstallare l'app e reinstallarla e dopo ogni reinstallazione l'app verrà eseguita nuovamente per la prima volta.

Un'altra opzione è una combinazione dei primi due. Puoi fare in modo che l'app si connetta al tuo server e fornisca al server l'UUID del dispositivo, quindi il server può verificare se ha già visto quell'UUID prima. Se non lo ha, fornisce l'argomento altrimenti non lo fa.

Se è veramente necessario che ciascun APK sia diverso per ogni dispositivo, è possibile configurare un server che quando viene ricevuta una richiesta di download, compila un nuovo APK e fornisce un collegamento per scaricare tale APK. Ciò ti consentirà di generare un APK nuovo e unico per ogni download. Ciò richiederà tuttavia che tu distribuisca l'APK in quanto Android Market non fornisce attualmente questa funzionalità.

+0

per il tuo tempo. L'app verrà scaricata solo dal mercato Android. beh, sì 1 soluzione è quella di avere quella relazione dispositivo - server unica. Ma poi di nuovo hai bisogno di un po 'di notifica push quando l'utente ottiene l'applicazione. È possibile scrivere alcuni dati nel browser predefinito e quindi cercare dall'applicazione ai dati del browser? I browser possono condividere i dati con le applicazioni? – weakwire

+0

Perché dovresti aver bisogno della notifica push? Perché l'applicazione non può home al caricamento iniziale dell'applicazione e richiedere informazioni al server? – slayton

+0

+ 1, se l'idea è di identificare il client in modo univoco, un ping verso un server domestico è il modo migliore. – RHT

1

Vorrei andare avanti e avere il sito Web che reindirizza al mercato anche per inviare un file al client. il file può essere chiamato qualcosa come "yourapp.info" e contiene i dati necessari. Una volta avviata la tua app, può cercare la scheda SD (dovrebbe risiedere in un paio di directory ben note, ovvero/sdcard/Downloads) e leggere quel file. Non ci sono restrizioni di accesso sulla sdcard.

Per quanto riguarda un cookie nel browser: non sono sicuro di poter accedere al cookie da qualsiasi altra app - (controllare questo: blog.watchfire.com/files/advisory-android-browser.pdf - non è possibile accedere ai cookie) quindi penso che il percorso sarà chiuso.

+0

buon approccio.Se è stato un modo per salvarlo in un percorso predefinito che sarebbe la soluzione, ma penso che non può. Una soluzione alternativa è creare qualche tipo di "cookie pubblico" che la mia app possa recuperare dal browser. – weakwire

+0

ho aggiornato la risposta sul motivo per cui penso che un cookie generale non funzionerà – LordT

Problemi correlati