无法在时间轴中插入卡片

时间:2013-11-21 11:06:48

标签: google-glass google-gdk

我无法使用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

是否还有人遇到此问题?

于连

3 个答案:

答案 0 :(得分:1)

此功能已添加到GDK的XE12 /第2版中。

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

答案 1 :(得分: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);
        }

}

答案 2 :(得分:0)

目前您可以做的最好的事情是看GDK示例项目。 (文件 - >新增 - >其他 - > Android示例项目 - >选择GDK Sneak Peak作为构建目标)
仔细查看指南针,秒表和计时器示例,让它们在你的玻璃上运行。

这是一个代码片段(只是相关代码),他们如何在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时发出的自定义活动。 (必须始终定义)

所以基本上这段代码会创建一个新的卡片,定义如何绘制它,定义点击它时发生的事情并发布它。还有更多的代码,请看样本。希望这能指导你朝着正确的方向前进。