5

我无法使用 GDK 将卡片插入用户时间线。我的代码很简单:

TimelineManager timelineManager = TimelineManager.from(this);

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

insert 方法返回的问题如下:

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

有没有人也有这个问题?

朱利安

4

3 回答 3

1

此功能是在 GDK 的 XE12 / release 2 中添加的。

请注意,setInfo()现在是setFootnote().

于 2013-12-19T20:37:07.873 回答
0

目前您能做的最好的事情就是查看 GDK 示例项目。(文件 -> 新建 -> 其他 -> Android 示例项目 -> 选择 GDK Sneak Peak 作为构建目标)
仔细查看 Compass、Stopwatch 和 Timer 示例,让它们在您的玻璃上运行。

这是一个代码片段(只是相关代码)他们如何在 Timer 示例中的时间轴中创建新卡片:

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 使用给定的字符串 ID 在时间线中创建一个新卡片。
MenuActivity 是在您点击 LiveCard 时发出的自定义活动。(必须始终定义)

所以基本上这段代码创建了一个新的卡片,定义了如何绘制它,定义了当它被点击并发布它时会发生什么。涉及更多代码,请查看示例。希望这可以引导您朝着正确的方向前进。

于 2013-12-16T01:38:58.947 回答
0

你想从哪里插入卡?如果您仍然遇到问题,可以查看我的 Hello Glass 回购;我能够毫无问题地创建和显示卡片:https ://github.com/DasCody/Hello-Glass

这是一个例子:

package com.codyengel.helloglass;

import com.google.android.glass.app.Card;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

public class Magic extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                /*
                 * We're creating a card for the interface.
                 * 
                 * More info here: http://developer.android.com/guide/topics/ui/themes.html
                 */
                Card card1 = new Card(this);
                card1.setText("Hello, Sir!");
                card1.setInfo("..or Ma'am");
                View card1View = card1.toView();

                // Display the card we just created
                setContentView(card1View);
        }

}
于 2013-11-26T07:17:03.967 回答