6

プッシュ通知を作成できます。しかし、現在、私は人々をホーム画面に着陸させることができます.

特定のアクティビティに人々を送るにはどうすればよいですか? item_id のようなパラメーターを追加して、アクティビティがロードするデータを認識できるようにすることは可能ですか?

または、これに関する優れたチュートリアルがどこかにあれば、それも素晴らしいでしょう。グーグルでこれに関する多くの良い情報を見つけることができないようです。

私の GCMIntentService には、次のメソッドがあります。

      @Override
      protected void onMessage(Context ctxt, Intent message) 
      {           
        Bundle extras=message.getExtras();

        try
        {
            String question_id = extras.getString("question_id");
//          SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( this );
//          Intent intent = new Intent(ctxt, QuestionActivity.class);

            generateNotification(ctxt, extras.getString("message"), "New Message"  );           
        }
        catch ( Exception e )
        {
        }
      }

しかし、generateNotification を変更して、その人がどのアクティビティに着地すべきかを通知する方法もわかりません。ありがとう!

4

2 に答える 2

10

更新:JSONのクレジットをエランに与えてください。詳しく説明したいと思います。

データキーを使用して他のパラメータを追加できます。

{
   "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
   "data": {
       "stuff": "100",
       "more": "abc"
   },
}

次に、を使用して同じ方法でアクセスしますintent.getExtras().getString("stuff")

すべてここにあります。

次に、あなたのgenerateNotifcation()

private static void generateNotification(Context context, String message) {
    NotificationManager notificationManager = (NotificationManager)
        context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.ic_launcher, message, when);
    String title = "...";


    //get id from json here and decide which activity to go to...
    Intent notificationIntent = new Intent(context, someClass.class);


    notificationIntent.putExtra("message",message);
    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.defaults|=Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);
}
于 2013-03-11T22:03:38.253 に答える
3

もちろん、 のようなパラメーターを追加することもできますitem_id。通知には任意のパラメーターを追加できます。Apple プッシュ通知とは異なり、事前定義されたペイロード パラメータがないため、パラメータがあるのと同じようにmessage、文字列値を持つ他のパラメータを使用できます (パラメータ名と値の合計の長さが 4096 バイトを超えない限り)。 .

通知からのアクティビティの読み込みに関しては、ここで必要なものすべてを見つけることができます。

于 2013-03-12T00:22:21.117 に答える