Не могу вставить карту на временную шкалу

Я не могу вставить карту в временную шкалу пользователя с помощью GDK. Мой код очень прост:

TimelineManager timelineManager = TimelineManager.from(this);

Card card = new Card(this);
card.setText("Text").setInfo("Info").addImage(R.drawable.ic_launcher);
timelineManager.insert(card);

Проблема, возвращаемая методом вставки, следующая:

Caused by: java.lang.IllegalArgumentException: Unknown URL content://com.google.android.glass.timeline/past_timeline_table

У кого-нибудь также есть эта проблема?

Жюльен


person Jul    schedule 21.11.2013    source источник
comment
Непонятно. Что такое сообщение об ошибке?   -  person fabrizioM    schedule 21.11.2013
comment
Извините, я ошибся, я отредактировал вопрос   -  person Jul    schedule 21.11.2013
comment
Из документации GDK: Это краткий обзор API-интерфейсов GDK. В надстройке GDK есть некоторые API, которые не описаны в этой справочной документации, поскольку в настоящее время они не работают. Вы увидите API-интерфейсы в файле JAR или в функции автозаполнения вашей IDE, но если они не отображаются здесь, в настоящее время они не поддерживаются. (developers.google.com/glass/develop/gdk/reference/index)   -  person Tony Allevato    schedule 21.11.2013
comment
Спасибо за напоминание   -  person Jul    schedule 22.11.2013
comment
В официальных приложениях для Glass используется TimelineProvider, но этот API еще не включен в GDK. Если вы сделаете запрос getContentResolver().query(Uri.parse(content://com.google.glass.timeline/timeline), null, null, null, null); вы можете найти все карты в вашей временной шкале, но я пока не знаю, как их вставить   -  person Racker    schedule 05.12.2013
comment
XE16 — класс TimelineManager был удален. Изменения в TimelineManager: класс TimelineManager и поддержка статических карточек из GDK удалены.   -  person kimo    schedule 10.05.2014


Ответы (3)


Эта функция была добавлена ​​в XE12/выпуске 2 GDK.

Обратите внимание, что setInfo() теперь setFootnote().

person squidpickles    schedule 19.12.2013


Лучшее, что вы можете сделать на данный момент, это просмотреть примеры проектов GDK. (Файл -> Создать -> Другое -> Образец проекта Android -> Выбрать GDK Sneak Peak в качестве цели сборки)
Внимательно изучите примеры компаса, секундомера и таймера и запустите их на своем стекле.

Вот фрагмент кода (только соответствующий код), как они создают новую карту на временной шкале в примере с таймером:

TimelineManager mTimelineManager;
LiveCard mLiveCard;
TimerDrawer mTimerDrawer;

mLiveCard = mTimelineManager.getLiveCard(LIVE_CARD_ID);
mLiveCard.enableDirectRendering(true).getSurfaceHolder().addCallback(mTimerDrawer);
mLiveCard.setNonSilent(true);

Intent menuIntent = new Intent(this, MenuActivity.class);
mLiveCard.setAction(PendingIntent.getActivity(this, 0, menuIntent, 0));
mLiveCard.publish();

Краткое пояснение:
LiveCard – это карта, которую вы вытягиваете. (потенциально довольно часто)
TimerDrawer — это пользовательский класс, который выполняет рисование.
getLiveCard создает новую карту на временной шкале с заданным строковым идентификатором.
MenuActivity — это пользовательское действие, которое запускается при касании Живая карта. (всегда должно быть определено)

Таким образом, в основном этот код создает новую карту, определяет, как ее рисовать, определяет, что происходит, когда на нее нажимают, и публикует ее. Там гораздо больше кода, посмотрите на пример. Надеюсь, это направит вас в правильном направлении.

person user3105723    schedule 16.12.2013