如何在取消发布以前的实时卡实例之前在Google Glass中发布实时卡

时间:2014-05-08 09:35:38

标签: java android google-glass google-gdk

所以我使用GDK在Google Glass上发布了一张Live Card,但是在我发布一张新卡后,我无法找到取消发布卡的方法。如果我不这样做,它会回到时钟屏幕看起来很糟糕。

这是我的liveCard Publishing,您可以选择已经存在的卡并稍后将其删除吗?我希望这是一个逻辑问题,但我无法理解它。

public void makeNotificationCard() {
    RemoteViews aRV = new RemoteViews(this.getPackageName(), R.layout.card_text);
    mNotCard = mTimelineManager.createLiveCard(LIVE_CARD_ID);
    aRV.setTextViewText(R.id.price, bigNum);
    aRV.setTextViewText(R.id.price2, littleNum);
    aRV.setTextViewText(R.id.merchant, shop);
    mNotCard.setViews(aRV);
    Intent mIntent = new Intent(this, MainActivity.class);
    mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    mNotCard.setAction(PendingIntent.getActivity(this, 0, mIntent, 0));
    mNotCard.publish(LiveCard.PublishMode.REVEAL);
}

1 个答案:

答案 0 :(得分:0)

首先,从XE16开始,TimelineManager已被删除。所以而不是:

mNotCard = mTimelineManager.createLiveCard(LIVE_CARD_ID);

您需要使用

mNotCard = new LiveCard(context, LIVE_CARD_ID);

至于取消发布,我并不完全确定我已经理解了你的问题,但你可以直接致电

mNotCard.unpublish();

这将从时间线中删除该卡。如果您在创建新的LiveCard之前执行此操作并使用LiveCard.PublishMode.REVEAL发布新的LiveCard,那么它应该直接跳到那个,我使用类似

的内容
public int onStartCommand(Intent intent, int flags, int startId) {
    if (mLiveCard != null) {
        mLiveCard.unpublish();
        mLiveCard.publish(LiveCard.PublishMode.REVEAL);
        return START_STICKY;
    }
    // other stuff to set up card if null
}

这将确保当命令被触发时,它将把焦点放在真人卡上。

希望有所帮助。如果我错过了这一点,请告诉我,我会尝试澄清。