1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

User über Update in der App informieren?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von pyretta, 28.04.2011.

  1. pyretta, 28.04.2011 #1
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    Hallo,

    ich würde meine App-User gerne per Toast informieren, wenn es ein Update der App im Market gibt. Und gleichzeitig auch in den "About this App" automatisch anzeigen, ob die App aktuell ist oder ein Update benötigt.

    Geht sowas?
    Wenn ja, wie?

    Kann man einfach per "If-Abfrage" die Versionsnummer im Market auslesen und mit der im Manifest vergleichen? Wie mach ich das?

    Ich habe leider bei Google und auch hier im Forum nichts zu dem Thema gefunden. Aber schon bei einigen Apps, die ich installiert habe, etwas ähnliches gesehen.

    Vielen Dank für Eure Antworten und Lösungsvorschläge.

    Liebe Grüße
    pyretta
     
  2. swordi, 28.04.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    du kannst die versionnummer der installierten app auslesen.

    welche im market ist eher nicht

    dafür solltest einfach auf deinem webserver nachfragen
     
    pyretta bedankt sich.
  3. pyretta, 28.04.2011 #3
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    Hallo swordi,

    vielen Dank für deine Antwort.

    Wie meinst du das mit dem Webserver?
     
  4. swordi, 28.04.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja

    du musst irgendwo auf deinem server eine datei hinterlegen, die die aktuelle versionsnummer beinhaltet.

    genau das rufst du ab und vergleichst
     
    pyretta bedankt sich.
  5. pyretta, 28.04.2011 #5
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    Vielen Dank.

    Ich werde es versuchen. :smile:
     
  6. pyretta, 28.04.2011 #6
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    Hallo nochmal..

    ich hab das jetzt mal ausprobiert die Versionsnummer aus dem Manifest auszulesen wie folgt:

    Code:
    public final void PackageInfo(int versionCode) {
            if (versionCode == 1){
                Toast.makeText(this, 
                        "Die App ist aktuell.",
                        Toast.LENGTH_LONG).show();
            }}
    
    Zum Testen ob es überhaupt funktioniert, habe ich eine ganz einfache If-Abfrage eingefügt, die ein Toast ausgeben soll. Aber es passiert einfach nix. :blink:

    Die Info über PackageInfo etc. habe ich von hier: PackageInfo | Android Developers

    Was mach ich denn falsch?
    In Eclipse werden mir keine Fehler angezeigt...

    EDIT:

    Ich habe auch versucht "int versionCode" durch "int AndroidManifest_versionCode" zu ersetzen - führt zum gleichen Ergebnis.

    Dann habe ich hier: R.styleable | Android Developers
    eine andere Idee aufgeschnappt und sie wie folgt versucht umzusetzen:

    Code:
    public static final int AndroidManifest_versionCode(){
            int versionCode = AndroidManifest_versionCode();
            if (versionCode == 1){
                Toast.makeText(null, 
                        "Die App ist aktuell.",
                        Toast.LENGTH_LONG).show();
            }
            return versionCode;}
    
    Aber das klappt auch nicht. (Ist auch bestimmt total durcheinander...)
     
    Zuletzt bearbeitet: 28.04.2011
  7. swordi, 28.04.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    hmm was soll da passieren?

    ich vermute mal ganz stark dir fehlen java grundlagen.

    new PackageInfo().versionCode
     
  8. pyretta, 28.04.2011 #8
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    oh huch.. sorry :D hast ja schon geantwortet...

    meinst du das mit dem "new PackageInfo().versionCode" so:

    "versionCode = new PackageInfo().versionCode;" ?
     
  9. Thyrion, 28.04.2011 #9
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,846
    Erhaltene Danke:
    2,451
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Das kommt darauf an, ob du den Versions-Code in der Variable namens versionCode speichern möchtest oder nicht. Wenn du das nur in der if-Abfrage verwendest, ist das wohl unnötig - aber letztendlich kannst nur du das beantworten.
     
  10. pyretta, 28.04.2011 #10
    pyretta

    pyretta Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    95
    Erhaltene Danke:
    1
    Registriert seit:
    24.01.2011
    Hallo Thyrion,

    vielen Dank für deine Antwort.

    Wenn ich einfach nur "new PackageInfo().versionCode;" schreibe dann gibt mir Eclipse folgende Fehlermeldung aus: "Syntax Error, inter "AssignmentOperator Expression" to complete Expression"... deshalb habe ich gedacht, ich müsste es so schreiben: "versionCode = new PackageInfo().versionCode;"

    Aber auch dann gibt mir Eclipse ein Fehler aus, erst wenn ich das so schreibe gibt Eclipse Ruhe: "versionCode = new android.content.pm.PackageInfo().versionCode;" (auch mit import android.content.pm.PackageInfo; )

    Ob es Sinn macht den versionCode in der Variable namens versionCode zu speichern weiss ich nicht.

    Aber es funktioniert so oder so nicht - der Toast wird nicht ausgegeben.

    Nochmal für alle Fälle hier der momentan verwendete Code:

    Code:
    public final void PackageInfo(int versionCode) {
            versionCode = new android.content.pm.PackageInfo().versionCode;
            if (versionCode == 1){
                Toast.makeText(this, 
                        "Die App ist aktuell.",
                        Toast.LENGTH_LONG).show();
            }}
    
     
  11. Thyrion, 28.04.2011 #11
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,846
    Erhaltene Danke:
    2,451
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Da kann ich eigentlich nur swordi zitieren:
    Du schreibst dir hier eine Methode mit dem Namen PackageInfo, der du eine Variable versionCode übergibst. Diese überschreibst du dann aber direkt und prüfst den Inhalt auf "== 1". Usw...


    Du musst natürlich deine Methode auch irgendwo verwenden, sonst passiert nichts.

    EDIT: Über die Sinnhaftigkeit der Benamung sage ich jetzt mal nichts ;)
     
  12. swordi, 28.04.2011 #12
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    java lernen ist hier angesagt.
     

Diese Seite empfehlen