Czy istnieje sposób na uzyskanie danych z "Powiadomienia GCM". Oto część mojego ciąg json, który wysyłam z gcm: {"data":{"id":"123"}}
. Potrzebuję wartości id w mojej aplikacji, ale nie wiem jak ... wielkie dzięki.Otrzymuj dane z powiadomienia GCM
Odpowiedz
Jeśli używasz nowej biblioteki GCM, musisz utworzyć klasę, która rozszerza IntentService, w tym miejscu biblioteka GCM powiadomi Cię, gdy zostanie odebrana wiadomość GCM. Proszę spojrzeć na MyIntentService.java próbki:
@Override
public final void onHandleIntent(Intent intent) {
try {
String action = intent.getAction();
if (action.equals("com.google.android.c2dm.intent.REGISTRATION")) {
handleRegistration(intent);
} else if (action.equals("com.google.android.c2dm.intent.RECEIVE")) {
handleMessage(intent);
}
} finally {
synchronized(LOCK) {
sWakeLock.release();
}
}
}
private void handleMessage(Intent intent) {
String id = intent.getExtra("id");
}
Jeśli nie korzystasz z biblioteki GCM, a następnie reakcja GCM przychodzi do ciebie w intencji w odbiorniku, a następnie można użyć getExtras intencyjny w(). getString(), aby pobrać parę klucz/wartość z powiadomienia GCM. na przykład
// intent come in in your onReceive method of your BroadcastReceiver:
public onReceive(Context context, Intent intent) {
// check to see if it is a message
if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
String id = intent.getExtras().getString("id");
String other_key = intent.getExtras().getString("other_key");
// if your key/value is a JSON string, just extract it and parse it using JSONObject
String json_info = intent.getExtras().getString("json_info");
JSONObject jsonObj = new JSONObject(json_info);
}
}
Najlepszym sposobem na uzyskanie go jako reprezentacji json jest dodanie danych jako obiektu json.
{
"registration_ids" : [
"id1",
"id2"
],
"data" : {
"my_json_object": {
"text" :"This is my message",
"title":"Some title"
}
},
"collapse_key":"12345"
}
Następnie przeanalizować swój obiekt tylko:
String json = getIntent().getExtras().getString("my_json_object");
JsonObject jObject = new JsonObject(json);
i najlepszym sposobem, jaki znalazłem, aby "dodać twoje dane jako obiekt json" jest: 'String json = gson.toJson ([YOUR_OBJECT]); Message msg = new Message.Builder(). AddData ("message", json) .build(); gcmresult = sender.send (msg, [ID Z KLIENTA GCM KLIENTA], 5); ' –
<receiver android:name=".beforelogin.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="android.intent.category.TAB" />
</intent-filter>
</receiver>
<service android:name=".beforelogin.GcmIntentService" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Dodaj swoją klasę GCmBroadcastReceviver i GcmIntentService, aby otrzymywać powiadomienia –
- 1. Otrzymuj bieżące powiadomienia Android
- 2. wycofanie/anulowanie powiadomienia gcm z Androidem
- 3. Otrzymuj powiadomienia Android Push, mimo że aplikacja jest zamknięta
- 4. Otrzymuj powiadomienia o zmienionych dokumentach w mongodb
- 5. Otrzymuj powiadomienia o wywołaniach metod w .NET
- 6. Otrzymuj dane POST z wielu pól wyboru?
- 7. Otrzymuj dane POST z Android Webview
- 8. Otrzymuj dane z obietnicy zamiast zwracać obietnicę
- 9. Uruchamianie aplikacji po otrzymaniu powiadomienia GCM
- 10. Otrzymuj dane wejściowe z klawiatury bez pola tekstowego/widoku
- 11. Korzystanie z GCM na Androida i iOS bez powiadomienia payload
- 12. Otrzymuj powiadomienia, gdy internet jest podłączony lub odłączony
- 13. Android, Webview, otrzymuj dane formularza zgłoszeniowego
- 14. Otrzymuj powiadomienia lokalne po usunięciu i ponownym zainstalowaniu aplikacji iPhone
- 15. Otrzymuj powiadomienia o przeciągniętych obrazach w treści div.
- 16. Cel C: Otrzymuj powiadomienia o stanie bezczynności użytkownika
- 17. Powiadomienia push GCM powodują błąd 502 Bad Gateway
- 18. Powiadomienia push GCM na Androida 3.1: wyłącz odbiornik transmisji
- 19. Android - powiadomienia wypychania GCM nie pojawiają się na liście powiadomień
- 20. Powiadomienia push na Androida: Google GCM a Amazon SNS?
- 21. Android GCM włącz światła
- 22. Różne smaki z GCM
- 23. Otrzymuj .csv plik jako dane w funkcji sukcesu ajax
- 24. Otrzymuj losowe rekordy z Doctrine
- 25. Swift: Otrzymuj UDP z GCDAsyncUdpSocket
- 26. Otrzymuj przerwy z listy czasów
- 27. Otrzymuj akcję z przesłanego formularza
- 28. Sposób obsługi powiadomienia z systemu Android, jeśli jest wyświetlany automatycznie przez GCM
- 29. Jak uzyskać Canonical ID z GCM
- 30. Błąd powrotu GCM: dane pola muszą być tablicą json
Ok, ale w jaki sposób można uzyskać tutaj (protected void onMessage (kontekst kontekście Intent intent)) ciąg zgłoszenie? – mysho
Zaktualizowałem odpowiedź, spójrz. – azgolfer
Jak mogę uzyskać polecenie gcm_notification_string z Intent? –