所以我使用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);
}
答案 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
}
这将确保当命令被触发时,它将把焦点放在真人卡上。
希望有所帮助。如果我错过了这一点,请告诉我,我会尝试澄清。