Come controllare quale ID di notifica viene cliccato?

La mia applicazione riceve notifiche GCM. Ho diversi tipi di notifiche e ad un certo punto l'utente può avere più di una notifica nella barra di stato. Tuttavia devo sapere quale esattamente ha cliccato su. Nel GCM onMessage Im che li imposta con

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); manager.notify(Integer.parseInt(notification_id), notification); 

Ho bisogno di get quella notifica dopo il clic sulla notifica. Sono abbastanza sicuro che sia qualcosa di semplice ma non ho trovato informazioni su di esso.

  • Perché FloatBuffer invece di float ?
  • Scala un Bitmapfont in LibGDX
  • Come accedere a Button all'interno di "include" layout
  • come uccidere le attività secondarie e portre l'attività in cima alla pila
  • Mockito + Dexmaker su Android
  • MediaPlayer come interrompere più suoni dalla riproduzione
  • Ecco l'onMessage di GCMIntentService

     @Override protected void onMessage(Context context, Intent data) { String content_title; String content_text; String event_id; String content_info; String url; String match_id; // Message from PHP server content_title = data.getStringExtra("content_title"); content_text = data.getStringExtra("content_text"); content_info = data.getStringExtra("content_info") + "'"; event_id = data.getStringExtra("event_id"); match_id = data.getStringExtra("match_id"); url = data.getStringExtra("url"); NOTIFICATION_URL = url; // Open a new activity called GCMMessageView Intent intent = new Intent(this, GCMMessageView.class); // Pass data to the new activity intent.putExtra("message", content_title); intent.putExtra("url", url); // Starts the activity on notification click PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); Options opts = new Options(); opts.inDither = true; opts.inScaled = false; /* Flag for no scalling */ // Create the notification with a notification builder Notification notification = new NotificationCompat.Builder(this) .setSmallIcon(drawable_small).setLargeIcon(drawable_big) .setWhen(System.currentTimeMillis()).setTicker(content_title) .setContentTitle(content_title).setContentInfo(content_info) .setContentText(content_text).setContentIntent(pIntent) .getNotification(); // Remove the notification on click notification.ledARGB = 0xff00ff00; notification.ledOnMS = 300; notification.ledOffMS = 1000; notification.flags |= Notification.FLAG_SHOW_LIGHTS; notification.flags |= Notification.FLAG_AUTO_CANCEL; NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); manager.notify(Integer.parseInt(match_id), notification); try { Uri notification2 = RingtoneManager .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification2); r.play(); } catch (Exception e) { } { // Wake Android Device when notification received PowerManager pm = (PowerManager) context .getSystemService(Context.POWER_SERVICE); final PowerManager.WakeLock mWakelock = pm.newWakeLock( PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "GCM_PUSH"); mWakelock.acquire(); // Timer before putting Android Device to sleep mode. Timer timer = new Timer(); TimerTask task = new TimerTask() { public void run() { mWakelock.release(); } }; timer.schedule(task, 5000); } } 

    E c'è il click

     String msg; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); if (intent.hasExtra("url")) msg = intent.getExtras().getString("url"); Log.e("URL", msg); setContentView(R.layout.activity_main); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(msg + "?device_id=" + GCMIntentService.DEVICE_REGISTRATION_ID.toString())); startActivity(browserIntent); // Toast.makeText(getApplicationContext(), // GCMIntentService.DEVICE_REGISTRATION_ID, Toast.LENGTH_LONG).show(); } 

  • Come finire () un'attività quando si preme il button Home
  • Multiple combinate o "query" utilizzando Android Parse
  • TypeArray in Android - Come memorizzare gli oggetti personalizzati in xml e recuperarli?
  • Android ViewPager Lag
  • Quando devo usare @android: id /?
  • OpenLayers in Android
  • One Solution collect form web for “Come controllare quale ID di notifica viene cliccato?”

    Puoi passare attraverso il codice riportto di seguito, devi submit object di notifica per il tuo bisogno.

      String appname = context.getResources().getString(R.string.app_name); NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); int currentapiVersion = android.os.Build.VERSION.SDK_INT; Notification notification; Intent intent = new Intent(context, NotificationActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("message", YOUR_DATA); int requestID = (int) System.currentTimeMillis(); PendingIntent contentIntent = PendingIntent.getActivity(context, requestID, intent, 0); if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB) { notification = new Notification(icon, message, when); notification.setLatestEventInfo(context, appname, message, contentIntent); notification.flags = Notification.FLAG_AUTO_CANCEL; notificationManager.notify((int) when, notification); } else { NotificationCompat.Builder builder = new NotificationCompat.Builder( context); notification = builder.setContentIntent(contentIntent) .setSmallIcon(icon).setTicker(appname).setWhen(when) .setAutoCancel(true).setContentTitle(appname) .setContentText(message).build(); notificationManager.notify((int) when, notification); } 

    Quando l'utente fa clic su una qualsiasi notifica, verrà re-diretto alla class NotificationActivity. In questa attività, nel metodo OnCreate () è ansible get i dati impostati.

      Intent intent = getIntent(); if (intent.hasExtra("message")) String msg = intent.getExtras().getString("message"); 

    Penso che aiuterà.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.