
StefMa
Dauer-User
- 450
Ich beschäftige mich grade mit GCM und habe auch schon mich dort eingelesen.
Leider fehlt mir dort aber irgendwie der Rote pfaden... So ganz genau verstehe ich das alles nicht. Mir schon klar, dass ich damit Push-Benachrichten senden kann, wie das aber technisch funktioniert, verstehe ich noch nicht.
Also ich nun angefangen den Client zu schreiben:
MainActivity (zusammengefasst):
Mein Thread_Register sieht dann so aus (zusammengefasst):
Mein Sender:
Und den Boradcast habe ich vom Tutorial abgeschirbene
Das ganze funktioniert auch. Allerdings weiß ich nicht so genau, wie nun was senden kann und empfangen.
Mir fehlt, wie schon gesagt, der rote pfaden.
Was passiert hier zum beispiel? Wohin wird das ganze geschickt?
Und wie kann ich meinen BroadcastReviecer ansprechen vom server aus?!
Wie muss ich einen Server einrcihten?
Kann ich auch von device zu device senden?
Also beispiel würde mir ja schon reichen, dass ich vom handy zum (selben) handy direkt schicke. Statisch. Ohne server. Geht das?
Danke und Gruß
Leider fehlt mir dort aber irgendwie der Rote pfaden... So ganz genau verstehe ich das alles nicht. Mir schon klar, dass ich damit Push-Benachrichten senden kann, wie das aber technisch funktioniert, verstehe ich noch nicht.
Also ich nun angefangen den Client zu schreiben:
MainActivity (zusammengefasst):
Code:
final GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext());
Button bttn = (Button) findViewById(R.id.reg_button);
bttn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread_Register(gcm, "Meine-Sender-ID", MainActivity.this)
.execute();
}
});
Mein Thread_Register sieht dann so aus (zusammengefasst):
Code:
public Thread_Register(GoogleCloudMessaging gcm, String senderId, Activity c) {
this.gcm = gcm;
this.senderId = senderId;
}
...
protected Void doInBackground(Void... v) {
try {
regId = gcm.register(senderId);
} catch (Exception exe) {
exe.printStackTrace();
regId = "";
}
return null;
}
protected void onPostExecute(Void result) {
super.onPostExecute(result);
new Thread_Send(gcm, senderId).execute();
}
Mein Sender:
Code:
protected Void doInBackground(Void... v) {
try {
Bundle data = new Bundle();
data.putString("hello", "World");
gcm.send(senderId + "@gcm.googleapis.com", "0", data);
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
Und den Boradcast habe ich vom Tutorial abgeschirbene
Das ganze funktioniert auch. Allerdings weiß ich nicht so genau, wie nun was senden kann und empfangen.
Mir fehlt, wie schon gesagt, der rote pfaden.
Code:
gcm.send(senderId + "@gcm.googleapis.com", "0", data);
Und wie kann ich meinen BroadcastReviecer ansprechen vom server aus?!
Wie muss ich einen Server einrcihten?
Kann ich auch von device zu device senden?
Also beispiel würde mir ja schon reichen, dass ich vom handy zum (selben) handy direkt schicke. Statisch. Ohne server. Geht das?
Danke und Gruß