C2DM (Verständnis)probleme

  • Hi leute,


    ich hab grad meine Mühe mit C2DM Notifications ... ich glaub ich hab ein generelles Verständnisproblem. Hab mir ein paar Tutorials und die Dokumentation durchgelesen aber irgendwie hat mich das ganze etwas verwirrt. Also konkret für brauchbar befunden habe ich ursprünglich diese Links: Android Cloud To Device Messaging, Push Notifications via C2DM und die Dokumentation.


    Aus dem ersten Tutorial hab ich mir mal den Code geklaut, wobei das ganze irgendwie etwas unübersichtlich gestaltelt ist und ab Punkt 4 sich die Klassen dann wiederholen nur mit mehr/anderem Code drin. Hab dann letzteren Code immer genommen und die Mail Adressen an meine angepasst. Für den Service generell hab ich mich auch registriert und auch eine Bestätigung per Mail bekommen.


    Doch wenn ich jetzt diese register(View view) Methode aufrufe kriege ich als authCode nur "n/a". Ich glaub ich hab da einen wichtigen Schritt vergessen ...


    Kann mir jemand bitte Schritt für Schritt noch einmal den Ablauf aufzählen quasi vom Starten meiner App aus? Mir gehts jetzt im ersten Moment auch noch gar nicht um den Server an den das ganze geht, der soll in php sein, auf den würd ich dann später zurück kommen wenn ich überrissen hab wie der Plan jetzt eigentlich ist. Nur gerade brauch ich erstmal einen Plan vor meinem geistigen Auge um richtig loslegen zu können.


    Kann mir bitte jemand helfen?


    Gruß,
    matze

  • Hmm, vll hab ich das ganze zu allgemein und allumfassend formuliert.


    Ich glaube ich weiß jetzt wo genau er aussteigt:


    Beim start meiner App rufe ich folgende Methode auf

    Java
    public void register() {
    		Log.w("C2DM", "start registration process");
    		Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
    		intent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
    		// Sender currently not used
    		intent.putExtra("sender", getString(R.string.PUSHMAIL));
    		startService(intent);
    	}


    In der Dokumentation steht


    aber mein RegistrationReceiver springt nicht an. Die entsprechenden Code-Snippets sähen so aus


    In der AndroidManifest.xml hätte ich den Receiver eigentlich auch eingebunden


    Deswegen gibt mir dann der Code

    Java
    public void showRegistrationId() {
    		SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    		String string = prefs.getString(getString(R.string.AUTH), "n/a");
    		Toast.makeText(this, string, Toast.LENGTH_LONG).show();
    		Log.d("C2DM RegId", string);
    
    
    	}


    nur ein "n/a" zurück.


    Sieht da irgendjemand einen Fehler? Für mich würde der Code nämlich eigentlich recht logisch aussehen. Ich weiß leider auch nicht ob ich die Rückgabe des Intents der Registrierung irgendwo abfangen und auslesen kann, um neue Erkenntnis zu erlangen.


    Kann mir jetzt vll. eher jemand helfen?


    Gruß,
    matze

  • Hi,


    wollt nur kurz sagen, dass dein Link gold wert war titus ;) Es ist zwar noch nicht fertig aber ich kriege einen Auth Key und für die Devices Registration IDs. Der rest dürfte eig. straight forward gehen. Hatte mich in einem Gewirr aus Permissions und Receivern verhäddert und irgendwann stimmte einfach gar nichts mehr hinsichtlich Packagenames und benötigter Berechtigungen. Kommt halt davon, wenn man zich schlechte Tutorials zusammen wirft bei denen jeweils ein Teil fehlt :D


    Ich mach mich wieder ans Werk ...


    Gruß,
    matze


    UPDATE: weiß jemand woran es liegen könnte, wenn ich mit meinem Handy die Notifications nun empfange, mit dem meiner Kollegin jedoch nicht? Muss ich da noch was aktivieren das bei mir schon so war? Liegts evtl an ICS vs 2.3.5?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!