Как определить, открыто ли приложение Android из уведомления, отправленного с помощью PushSharp?

Итак, я использую PushSharp для отправки уведомления на С# в мое приложение для Android:

      var push = new PushBroker();
      push.RegisterGcmService(new GcmPushChannelSettings(androidKey) { });
      push.QueueNotification(
                new GcmNotification().ForDeviceRegistrationId(registrationId)
                    .WithJson("{\"alert\":\"" + PushMessageFormater.FormatMessage(ncRuleResult) + "\",\"badge\":7,\"sound\":\"sound.caf\"}"));

Все работает нормально, уведомления отправляются корректно.

Теперь все, что я хочу сделать, это определить из моей MainActivity, открыто ли приложение, когда конечный пользователь нажимает в полученном уведомлении.

protected void onCreate(Bundle savedInstanceState) {
    registrationGetter = new RegistrationGetter(this);
    super.onCreate(savedInstanceState);
    Intent intent = getIntent() ;

   // How to check from here if the app is actually open further to a push tap.
}

Все, что я нашел в SO, это то, что мне нужно добавить дополнительную переменную в Intent, но, к сожалению, я не могу найти способ указать Intent от PushSharp.

Заранее спасибо.


person Pablo Honey    schedule 28.04.2015    source источник
comment
вы получаете push-уведомления на своем устройстве ??   -  person Dinesh Kannan    schedule 28.04.2015
comment
да, я получаю push-уведомления на своем устройстве.   -  person Pablo Honey    schedule 28.04.2015
comment
вам нужно проверить из фоновой службы/приемника вещания, чтобы проверить, находится ли приложение в фоновом режиме или работает.. если вы вызываете действие при получении уведомления в приемнике, ваше приложение выходит на передний план..   -  person Dinesh Kannan    schedule 28.04.2015
comment
ty @user1992200, но мой вопрос был не очень ясен. Я добавил эту часть: теперь все, что я хочу сделать, это определить из моей MainActivity, открыто ли приложение, когда последний пользователь нажимает в полученном уведомлении.   -  person Pablo Honey    schedule 28.04.2015
comment
проверка того, находится ли приложение на переднем плане из основного действия, бессмысленно.. при нажатии на уведомление вы должны вызвать службу, чтобы проверить, является ли приложение фоновым или нет..   -  person Dinesh Kannan    schedule 28.04.2015
comment
Давайте продолжим обсуждение в чате.   -  person Dinesh Kannan    schedule 28.04.2015


Ответы (1)


изменить ожидающее намерение вызвать службу при нажатии на уведомление

PendingIntent pendingIntent = PendingIntent.getService(context, 579, intent,PendingIntent.FLAG_UPDATE_CURRENT);

обратитесь сюда , чтобы проверить, на переднем плане или нет .. вы должны проверить это из своей службы, вызванной после нажатия на полученное уведомление ..

person Dinesh Kannan    schedule 28.04.2015