Domanda

Sto sviluppando un'applicazione che sarà disponibile da un sito web (mercato probabilmente pure). Il problema che sto avendo in questo momento è come gestire gli aggiornamenti per l'applicazione. Io so come controllare la versione di contro quella corrente e so che se ho bisogno di aggiornarlo. La domanda è ... come?

C'è un modo posso scaricare un APK dal sito web e avviare il processo di installazione? L'utente dovrà confermare naturalmente, ma voglio solo essere in grado di iniziare per lui. Al momento sto facendo questo:

private void doUpgrade() {
    // TODO Auto-generated method stub
    Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(getString(R.string.upgrade));
    builder.setIcon(R.drawable.help);
    builder.setMessage(getString(R.string.needUpgrade));
    builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

            Map<String, String> data = new HashMap<String, String>();

            try {
                HttpResponse re = Registration.doPost("http://www.android-town.com/appRelease/AndroidTown.apk",data);

                int statusCode = re.getStatusLine().getStatusCode();
                closeApp();

            } catch (ClientProtocolException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
                closeApp();
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
                closeApp();
            }
        }
    });
    builder.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            dialog.cancel();
            closeApp();
        }
    });
    builder.show();
}

Ma in realtà non fa nulla ... dovrei aprire una WebView con l'URL? Un nuovo thread eseguibili? Ogni altro modo? Si prega di aiuto:)

Saluti

È stato utile?

Soluzione

più semplice è solo per lanciare un Intent per aprire l'URL di download nel Browser. Questo scaricherà la APK e l'utente può quindi installarlo facendo clic su di essa nel download manager.

Si sta dicendo che questo si occuperà OTA separare al mercato in modo che l'utente dovrebbe già aver disattivato "Consenti applicazioni da fonti non-Market", quando inizialmente installato la tua app.

Altri suggerimenti

Solo una nota che questo non è in grado di lavorare bene: la maggior parte dei dispositivi vengono con il "Consenti applicazioni da non-Market fonti" opzione disabilitata (in Impostazioni> Applicazioni)

.

Questo significa che quando si avvia l'intenzione di installare l'applicazione, l'utente riceverà un messaggio di avviso e l'installazione avrà esito negativo.

Mentre è possibile controllare contro una fonte esterna di nuovi aggiornamenti (ad esempio Controllo di un file di testo sul vostro server) e notifica all'utente, li avrei reindirizzare al mercato Android in sé di fare l'aggiornamento.

Come è già stato detto "Consenti applicazioni da fonti non-mercato" opzione potrebbe essere un vero e proprio dolore per voi come persone diverse da beta tester o come loro non sarebbe interessato di selezionare questa opzione per motivi varoius. Prova PROVA Scelta dei colori, che dovrebbe aiutare. https://testflightapp.com/android/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top