Не удается прочитать данные пакета уведомлений Parse push

Я пытаюсь отправить пользовательские данные с помощью службы уведомлений с помощью Parse push, но при извлечении из Bundle всегда возвращаются нулевые значения.

Пользовательский широковещательный приемник:

@Override public void onReceive(Context context, Intent intent) { Log.e("Receiver","Invoked"); Bundle bundle = intent.getExtras(); Intent contentIntent = new Intent(context, MainPage.class); String alertMsg = bundle.getString("heading"); //never get this value String urlString = bundle.getString("dataString"); //never get this value contentIntent.putExtra(EXTRA_URL, urlString); PendingIntent pendingIntent = PendingIntent.getActivity(context, NOTIFY_REQUEST_CODE, contentIntent, PendingIntent.FLAG_ONE_SHOT); showNotification(context, notificationId, alertMsg, pendingIntent); } 

Декларация манифеста:

  <receiver android:name=".receiver.NotificationReceiver" android:exported="false"> <intent-filter> <action android:name="link_notification"/> </intent-filter> </receiver> 

И я отправляю следующий JSON из панели анализа синтаксиса:

 { "dataString": "objectId", "heading": "type", "action": "link_notification" } 

Когда я регистрирую данные Bundle, я могу видеть заголовок и dataString , но не могу его получить. Пакет всегда возвращает null.

Пожалуйста помоги! Благодарю.

JSON будет в дополнительной строке com.parse.Data .

 @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String jsonData = extras.getString("com.parse.Data"); JSONObject jsonObject; try { jsonObject = new JSONObject(jsonData); String heading = jsonObject.getString("heading"); String dataString = jsonObject.getString("dataString"); } catch (JSONException e) { e.printStackTrace(); } } 

Хорошо, теперь я понял. Чтобы получить Json String, вам нужно сделать следующее:

 public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Bundle extra = intent.getExtras(); String json = extra.getString("com.parse.Data"); } 

Это связано с тем, что данные пакета содержат объект json как строку, извлекаемую с помощью ключа, который вы можете проверить при разборе. Только тогда вам нужно проанализировать эту строку с помощью gson, например, для получения объектов Java.