Отображение значка присутствия с адаптером синхронизации на контактах

Я попытался использовать значок присутствия и показать присутствие для своих пользовательских пользователей. что бы я ни делал, я столкнулся с ошибкой «не удалось вставить» или присутствие не отображалось в моих контактах.

   values.put(StatusUpdates.DATA_ID, profileId);
   values.put(StatusUpdates.STATUS, user.getStatus());
   values.put(StatusUpdates.PROTOCOL, Im.PROTOCOL_CUSTOM);
   values.put(StatusUpdates.CUSTOM_PROTOCOL, CUSTOM_IM_PROTOCOL);
   values.put(StatusUpdates.IM_ACCOUNT, username);
   values.put(StatusUpdates.IM_HANDLE, user.getuserID());
   values.put(StatusUpdates.STATUS_RES_PACKAGE, context.getPackageName());
   values.put(StatusUpdates.STATUS_ICON, R.drawable.tray_icon);
   values.put(StatusUpdates.STATUS_LABEL, R.string.app_name);
   values.put(StatusUpdates.PRESENCE, StatusUpdates.AVAILABLE);

есть кто с решением?


person MaTriXy    schedule 11.04.2012    source источник


Ответы (2)


Руководство, включающее специальную обработку для версии 2.2, разрешения и т. д., см. также:

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2

Их источник доступен:

https://github.com/c99koder/lastfm-android/

person Alex Cohn    schedule 13.05.2012

Эта строка выглядит подозрительно:

values.put(StatusUpdates.DATA_ID, profileId);

Что такое идентификатор профиля? Если указано, StatusUpdates.DATA_ID должен быть _ID строки IM в таблице «данные». Вам нужно иметь эту строку, прежде чем вставлять статус.

Обычная практика заключается в том, чтобы иметь строку в таблице «данные», затем указать IM_PROTOCOL и IM_HANDLE (которые сопоставляются с Im.DATA), но оставить DATA_ID неуказанным во вставке обновления состояния. ContactsProvider автоматически сопоставит статус со строкой данных и сохранит запрос поиска.

Кроме того, убедитесь, что вы используете bulkInsert для статусов, если можете. Это сильно ускорит дело.

person Dmitri Plotnikov    schedule 16.04.2012
comment
спасибо попробую. profileId - это идентификатор необработанного контакта, который я ищу в таблице необработанных контактов. Пользователь был вставлен раньше, и теперь у меня есть необработанный идентификатор контакта, который я использую. видимо не правильно делает.... - person MaTriXy; 16.04.2012