2014-11-17 1 views
1

Я использую asmack 4.0.5 и хочу, чтобы последний раз просматривал пользователей. Я попытался с помощью:Как получить последний раз, используя asmack 4.0.5 в android

LastActivityManager lActivityManager = LastActivityManager.getInstanceFor(mConnection); 

try { 
     Log.v(TAG,"Last Activity: " + ActivityManager.getLastActivity(pArg0.getFrom())); 

    } catch (NoResponseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (XMPPErrorException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (NotConnectedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Но это всегда возвращает 0 seconds.It должно быть, как, когда приложение находится в фоновом режиме, то пользователь должен быть показан как пользователь offline.The только в Интернете, когда он имеет приложение на переднем плане .Does кто имеет любая идея, как последний раз увидеть пользователя.

ответ

0

Необходимо послать пакет со статусом «Online», когда речь идет онлайн и «Offline», когда он переходит в автономный режим (когда приложение идет в фоновом режиме, отправить «Офлайн»). Только теперь сервер сможет сообщить другим людям, когда они спросят.

Сейчас, когда A хочет знать последний раз просмотренный статус для B и server возвращает 0, то в соответствии с документацией это означает, что B уже в сети .. :) в противном случае это будет истекшее время. Читайте здесь для более подробной информации.

LastActivityManager Source Docs

Official XEP-0012

0

Насколько я работал до сих пор я не видел, что для получения в последний раз видели вы должны реализовать XEP 92 и убедитесь, что поддержка вашего сервера this.else использовать последнюю активность вашего списка. чтобы показать последний увиденный. И поддерживать БД для хранения этого ... и с помощью пакета присутствия вы можете получить это. Или измените свой пакет сообщений, чтобы отправить присутствие реестров, пока он/она выходил онлайн, и отправлял другой, когда он/она отправляется в автономном режиме. Положите время с этим пакетом. Когда ваш получатель (вы) получите этот пакет, обновите Db. Надежда показать, что вы можете понять. :)

 Смежные вопросы

  • Нет связанных вопросов^_^