2010-06-16 11 views
32

Sto sviluppando un'applicazione che sarà probabilmente preinstallata sui dispositivi. Sarà anche disponibile su Google Play. C'è un modo per aggiornare quelle istanze che non vengono scaricate tramite Google Play, dal momento che Google Play non notificherà agli utenti un aggiornamento.C'è un modo per aggiornare automaticamente l'applicazione su Android?

Stavo pensando, come suggested here, a provare a contattare il mio sito periodicamente, e quando l'aggiornamento è disponibile, scaricalo.

C'è un modo per fare questo aggiornamento automaticamente, o anche in silenzio, in modo che l'utente non debba fare nulla (come l'esecuzione manuale del pacchetto). Oppure, quando il mio sito mostra l'aggiornamento è disponibile, per offrire agli utenti un aggiornamento tramite Google Play, anche se non è installato attraverso Market (EDIT: questa opzione di Google Play sarebbe preferibile, perché gli utenti non dovrebbero controllare "consenti l'installazione di fonti non di mercato ".)

+1

preinstallato sui dispositivi come? –

+0

Preinstallato lavorando per o con un venditore di dispositivi o un gestore, presumibilmente. –

+1

Sì, molto probabilmente, ma se fosse in un ambiente aziendale o qualcosa del genere, un'opzione sarebbe quella di installare originariamente scaricando dal mercato, piuttosto che dover ricoprire il proprio programma di aggiornamento. –

risposta

41

Ho avuto lo stesso problema, ora controllo all'inizio della mia app se c'è una nuova versione nella mia configurazione xml.

ho confrontare la versione attuale con il tag "< APP_VERSION> 1.1 </APP_VERSION>" del mio configuration.xml se inferiore chiedo con un AlertDialog personalizzato se l'utente procede con l'aggiornamento

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link)); 
startActivity(intent);  

dopo il download l'utente deve eseguire il pacchetto manualmente.

se si sceglie l'aggiornamento dall'utilizzo mercato Android:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name")); 
startActivity(intent); 

com.package.name deve essere il "pacchetto" della vostra applicazione

o

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME)); 
startActivity(intent); 
+0

Questo è più o meno quello che avevo in mente. Ancora un po 'troppo complicato per gli utenti ... Grazie – Levara

+5

Come hai fatto il confronto con la versione di GooglePlay. Man Sarà apprezzato –

+1

Quello che faccio è avere l'ultima versione in internet, per esempio yourdomain.com/lastversion.txt. Quando l'app si avvia esegue un http get all'url dove viene annotata l'ultima versione e si confronta con la versione dell'app, se la versione remota è più alta allora lancio l'intento. Quindi, dopo che la tua versione è stata approvata da Google Play, aggiorno i contenuti yourdomain.com/lastversion.txt con la nuova versione rilasciata. –

0

Non è possibile installare o aggiornare un pacchetto automaticamente. Solo Android Market è in grado di farlo (cioè si aggiorna automaticamente da solo).

È possibile scaricare un pacchetto e attivare lo Intent per installarlo, ma l'utente dovrà avere le opzioni "Consenti app non di mercato" abilitate e dovranno ancora approvare manualmente l'installazione/l'aggiornamento.

Un luogo per indagare è come funziona Google Maps. Generalmente è preinstallato, ma sembra che venga sempre visualizzato come aggiornamento nell'app Android Market, credo. Se c'è una bandiera speciale nel packages.xml o manifest, non lo so.

+0

Grazie, proverò a indagare su questo – Levara

4

sto sviluppando un'applicazione che sarà probabilmente preinstallata sui dispositivi .

Quindi devi parlare con i produttori di dispositivi e porre loro le tue domande. Nessun altro sarà in grado di dirti ciò che è e non è possibile, dato il loro dispositivo e il/i gestore/i che lo distribuirà. Le risposte dipenderanno pesantemente dal modo in cui creano il loro firmware, indipendentemente dal fatto che la tua applicazione faccia parte del firmware o "installata" come una normale app, quale accordo con il corriere sia rispetto agli aggiornamenti del firmware, ecc. anche ottenere un voto in materia.

+3

"Non si può nemmeno ottenere un voto in merito." Io non ... Ecco perché sto cercando un modo alternativo ...: P – Levara

+0

Forse puoi aggiornare la tua risposta e indicare il tuo cwac-updater – rds

+0

@CommonsWar possiamo aggiornare automaticamente l'app lanucher da google play ? Sto affrontando il problema http://stackoverflow.com/questions/39504146/google-play-auto-update-does-not-update-apps#39504146 – PankajAndroid

8

Ho appena trovato un modo che funziona. Spara un intent per un mercato che cerca la mia applicazione.

Testato con OpenIntent Newsreader perché è stato facile trovare una versione precedente di .apk. Market trova un'applicazione e quando l'utente fa clic su installa, sostituisce la versione precedente con quella del Market. Penso che sia una soluzione molto più semplice per un utente che scaricare manualmente .apk ed eseguirlo.

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME)); 
startActivity(intent); 
+2

E se sul dispositivo non ci sono Market (ad es. Google Apps)? –

+0

Tutti i miei utenti devono avere installato Market. Immagino che, se così non fosse, la risposta di Jorgesys è l'unica opzione. – Levara

1

Se chiunque in bundle l'applicazione sul dispositivo fa un corretto lavoro di esso, allora l'applicazione avrà ancora un collegamento di mercato (anche come applicazione di sistema) e il mercato chiederà all'utente di aggiornare, se una nuova la versione è disponibile. Dopotutto, è esattamente ciò che accade con un'app come GMail preinstallata sui telefoni.

7

C'è un modo per aggiornare quelle istanze che non vengono scaricate tramite Google Play, poiché Google Play non notificherà agli utenti un aggiornamento.

vecchia questione, nuova risposta:

Dopo aver scavato sulla esattamente la stessa domanda (app pre-installato sul dispositivo, come posso fornire un aggiornamento tramite Google-Play) ho trovato queste informazioni su support.google.com *:

Google Play in grado di gestire gli aggiornamenti di applicazioni precaricate, purché siano soddisfatte le seguenti condizioni:

  • L'applicazione precaricata deve essere nella partizione di sistema
  • L'applicazione precaricata deve essere libero
  • L'applicazione precaricata deve essere firmato con la stessa firma l'applicazione pubblicata nel Google Play
  • il nome del pacchetto dell'app precaricata e aggiornato deve essere lo stesso
  • il Codice versione dell'app aggiornato deve essere maggiore di quella delle app precaricata

* a partire dal 2015-04-13

+0

A partire dal 10/10/13, uno dei requisiti è "L'app precaricata deve essere gratuita". –

0

C'è un buon servizio che aiuta la tua app a mantenersi aggiornata. Date un'occhiata a https://www.pushlink.com

In questo prodotto è disponibile una modalità NINJA che consente di eseguire aggiornamenti senza l'interazione dell'utente.

Per le altre "modalità", è comunque necessario abilitare "Installa app non di mercato". Se non è abilitato, il processo di installazione lo richiederà e reindirizza l'utente alle Impostazioni dell'applicazione, dopodiché l'utente può installare l'app.

+0

Puoi condurmi ad alcuni documenti o ad un blog o qualcosa su questa modalità Ninja, quindi posso scavare ancora un po '? Grazie. – yahya

+1

penso che dovresti puntualizzare che https://www.pushlink.com è una soluzione a pagamento – hyena

+0

E uno costoso! 5000 installazioni è 1250 al mese, e va * su *. Un po 'scandaloso, ma se sei un'impresa sciocca, allora ok. Target è probabilmente una piccola base installata di un'app privata. –

0

È possibile aggiornare automaticamente un'app, se è possibile firmare un'app come app di sistema. Abbiamo scritto un'app per hardware specifico, abbiamo creato un'app di aggiornamento che il produttore ha firmato per noi. L'app di aggiornamento viene eseguita all'avvio del dispositivo, controlla la versione corrente dell'app e la nuova versione e, se necessario, installa la nuova versione.

Il caso d'uso sarebbe un'app kiosk, su tablet di una marca e modello, che non dispongono di Google Play.

Problemi correlati