コード例 #1
0
    @Override
    public void initPushHandling(String senderID) {
      if (MPConfig.DEBUG) Log.d(LOGTAG, "initPushHandling");

      if (!ConfigurationChecker.checkPushConfiguration(mContext)) {
        Log.i(LOGTAG, "Can't start push notification service. Push notifications will not work.");
        Log.i(LOGTAG, "See log tagged " + ConfigurationChecker.LOGTAG + " above for details.");
      } else { // Configuration is good for push notifications
        final String pushId = getPushId();
        if (pushId == null) {
          if (MPConfig.DEBUG) Log.d(LOGTAG, "Registering a new push id");

          try {
            Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
            registrationIntent.putExtra(
                "app", PendingIntent.getBroadcast(mContext, 0, new Intent(), 0)); // boilerplate
            registrationIntent.putExtra("sender", senderID);
            mContext.startService(registrationIntent);
          } catch (SecurityException e) {
            Log.w(LOGTAG, e);
          }
        } else {
          MixpanelAPI.allInstances(
              new InstanceProcessor() {
                @Override
                public void process(MixpanelAPI api) {
                  if (MPConfig.DEBUG) Log.d(LOGTAG, "Using existing pushId " + pushId);
                  api.getPeople().setPushRegistrationId(pushId);
                }
              });
        }
      } // endelse
    }
コード例 #2
0
 private void handleRegistrationIntent(Intent intent) {
   final String registration = intent.getStringExtra("registration_id");
   if (intent.getStringExtra("error") != null) {
     Log.e(LOGTAG, "Error when registering for GCM: " + intent.getStringExtra("error"));
   } else if (registration != null) {
     if (MPConfig.DEBUG) Log.d(LOGTAG, "Registering GCM ID: " + registration);
     MixpanelAPI.allInstances(
         new InstanceProcessor() {
           @Override
           public void process(MixpanelAPI api) {
             api.getPeople().setPushRegistrationId(registration);
           }
         });
   } else if (intent.getStringExtra("unregistered") != null) {
     if (MPConfig.DEBUG) Log.d(LOGTAG, "Unregistering from GCM");
     MixpanelAPI.allInstances(
         new InstanceProcessor() {
           @Override
           public void process(MixpanelAPI api) {
             api.getPeople().clearPushRegistrationId();
           }
         });
   }
 }