Update Check

  • Antworten:11
Alexander R.
  • Forum-Beiträge: 1.148

21.01.2011, 20:43:38 via Website

Hallo,
ich habe in meine App ein Update Feature eingebaut, jedoch wird die App immer geupdatet.
Gibt es eine Möglichkeit die Versionsnummer zu überprüfen von installierter Anwendung und auf Server liegenden apk, sodass man wenn die auf Server neuer (höher) ist updatet?

Hoffe ihr versteht, was ich meine

Gruß
Alexander

Gruß Alexander

Antworten
Tobias Eckert
  • Forum-Beiträge: 155

22.01.2011, 19:12:00 via Website

Erst mal musst Du im Programm die Versionsnummer herausfinden die gerade ausgeführt wird:

1PackageManager pm = this.getPackageManager();
2PackageInfo packageInfo = pm.getPackageInfo(this.getPackageName(), 0);
3Log.i("Mein Programm", "versionCode="+String.valueOf(packageInfo.versionCode));

Dann musst Du rausfinden welches die aktuellste Version ist die auf Deinem Server liegt. Das kannst Du z.B. dadurch regeln dass Du eine http Anfrage an Deinen Server schickst, und dort ein PHP Script ablegst das Dir die neueste Versionsnummer zurück gibt.

Die beiden Versionsnummern kannst Du dann vergleichen und gegebenenfalls Deine Update Routine starten.

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

22.01.2011, 19:22:54 via App

Hallo Tobias,
leider bin ich im PHP nicht so bewandert. Hättest du ein Tutorial oder eine Lösung die ich anpassen kann?

Gruß Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 107

24.01.2011, 23:00:37 via Website

Alexander Rock
Hallo Tobias,
leider bin ich im PHP nicht so bewandert. Hättest du ein Tutorial oder eine Lösung die ich anpassen kann?

Das ist Java-Code ;) Das sollte so in einer Android-Activity auf deinem Gerät laufen.

Seid nett zueinander: AndroidPIT-Regeln ;)

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

24.01.2011, 23:10:03 via Website

Hallo Carsten,
aber iwie muss die Anwendung doch vom server die Versionsnummer der App lesen und das via PHP oder?

Hättest du ein beispiel, wie man das machen kann?

Gruß Alexander

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

24.01.2011, 23:18:48 via Website

wenn du kein php kannst, reicht es eine datei mit der aktuellen versionsnummer zu haben. diese dann via android zu laden und zu lesen.

dazu brauchst kein php

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 107

24.01.2011, 23:24:49 via Website

Alexander Rock
Hallo Carsten,
aber iwie muss die Anwendung doch vom server die Versionsnummer der App lesen und das via PHP oder?

Hättest du ein beispiel, wie man das machen kann?

Du brauchst dazu kein PHP. Du kannst auf deinem Server eine einfache Text-Datei ablegen, die du dir dann per HTTPClient ziehst, auswertest und mit der aktuellen Version vergleichst.







Ich benutze übrigens bevorzugt Python für dynamische Inhalte auf Servern *duck&wech*

Seid nett zueinander: AndroidPIT-Regeln ;)

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

25.01.2011, 10:01:02 via Website

Andere Möglichkeit:
Du holst dir per HTTP Head Request das Änderungsdatum der Datei auf deinem Server und speicherst in deiner App bei welchem Änderungsdatum zuletzt ein Update gezogen wurde.
So musst du keine Textdateien Pflegen, sondern einfach nur die Datei auf dem Server austauschen und die App erkennt automatisch, dass ein Update verfügbar ist.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

25.01.2011, 10:18:57 via Website

Rafael K.
Andere Möglichkeit:
Du holst dir per HTTP Head Request das Änderungsdatum der Datei auf deinem Server und speicherst in deiner App bei welchem Änderungsdatum zuletzt ein Update gezogen wurde.
So musst du keine Textdateien Pflegen, sondern einfach nur die Datei auf dem Server austauschen und die App erkennt automatisch, dass ein Update verfügbar ist.
das ist natürlich noch einfacher ;)

swordiApps Blog - Website

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

25.01.2011, 11:21:54 via App

Hätte da jemand ein gutes Codesnippet oder sowas?
mit dem header request

Gruß Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 107

25.01.2011, 23:45:02 via App

Der Header Request hat nur den Nachteil, dass schon ein touch auf die Datei (zB Einspielen eines Backups, Kopieren der Datei hin und her aus wer weiß aus welchen Gründen) den Update-Mechanismus anstößt. Das kann ärgerlich werden. Ich bin da eher der Fan von explizit anstatt implizit...

Seid nett zueinander: AndroidPIT-Regeln ;)

Antworten