2013-11-21 43 views
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); 

通過鑲嵌方法返回的問題是:

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

是任何人也有這個問題?

Julien

+0

不清楚。什麼是錯誤信息? – fabrizioM

+0

對不起,我犯了一個錯誤,我編輯了這個問題 – Jul

+6

從GDK文檔: 「這是GDK APIs的一個尖峯,GDK插件中有一些API沒有在此參考文檔中記錄,因爲它們目前沒有工作,你會在JAR文件或IDE的自動完成功能中看到API,但是如果它們沒有出現在這裏,它們目前不被支持。「 (https://developers.google.com/glass/develop/gdk/reference/index) –

回答

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); 
     } 

} 
+5

我正試圖將該卡添加到時間軸中,而不是添加到活動中。 – Jul

0

你可以在瞬間IST看看GDK示例項目做到最好。 (文件 - >新建 - >其他 - > Android示例項目 - >選擇GDK潛行峯作爲構建目標)
仔細查看Compass,Stopwatch和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時發出的自定義活動。 (必須經常被定義)

所以基本上這個代碼創建一個新的卡片,定義如何繪製它,定義當它被點擊併發布時會發生什麼。涉及的代碼更多,查看示例。希望這能引導你朝着正確的方向前進。

1

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

請注意,setInfo()現在是setFootnote()