Frage

Ich entwickle eine Anwendung, die von einer Website (Markt wahrscheinlich auch) zur Verfügung stehen wird. Das Problem, das ich im Moment habe, ist, wie das Updates für die App zu behandeln. Ich weiß, wie die Version mit dem aktuellen zu überprüfen, und ich weiß, wenn ich es aktualisieren müssen. Die Frage ist ... wie?

Gibt es eine Möglichkeit ich eine APK-Datei von der Website herunterladen und starten Sie den Prozess installieren? Der Benutzer wird zur Bestätigung natürlich hat, aber ich möchte nur in der Lage sein, es für ihn zu starten. Im Moment mache ich das:

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();
}

Aber es hat nicht wirklich etwas tun ... soll ich öffne eine webView mit der URL? Ein neuer Thread runnable? Jede andere Art und Weise? Bitte Hilfe:)

Prost

War es hilfreich?

Lösung

Am einfachsten ist nur ein Intent zu starten, um die Download-URL in der Browser zu öffnen. Dies wird den APK herunterladen und der Benutzer kann dann durch Anklicken in den Download-Managern installieren.

Sie sagen, dass dieser OTA auf den Markt trennen behandeln, so sollte der Benutzer bereits deaktiviert hat „Allow Apps von Nicht-Market-Quellen“, wenn sie Ihre Anwendung zunächst installiert ist.

Andere Tipps

Nur ein Hinweis, dass dies funktioniert nicht wahrscheinlich ist gut: Die meisten Geräte sind mit den „Allow Apps aus Nicht-Market-Quellen“ Option deaktiviert (unter Einstellungen> Anwendungen)

.

Das bedeutet, dass, wenn Sie die Absicht starten Sie die App zu installieren, wird der Benutzer eine Warnmeldung erhalten und die Installation fehlschlagen.

Während Sie gegen eine externe Quelle für neues Updates überprüfen können (zum Beispiel eine Textdatei auf dem Server überprüft) und den Benutzer benachrichtigen, ich würde sich auf den Android Market umleiten sich das Upgrade zu tun.

Wie jeder „Allow Apps von Nicht-Market-Quellen“, so hat Option könnte ein echten Schmerzen für Sie sein als andere Personen als Beta-Tester oder wie sie nicht Interessenten würden diese Option für varoius Gründe zu prüfen. Versuchen Testflug, sollte es helfen. https://testflightapp.com/android/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top