LiveCard
このクラスを使用すると、アクティブなカードを作成してタイムラインに公開できます。
ライブカードの作成方法について詳しくは、 ライブカードに関するデベロッパー ガイド。
有効なカードのライフサイクル
ライブカードは、存在し続けている間、それを所有するために、長時間にわたるコンテキストを必要とします
バックグラウンドで Service
を管理する必要があります。その後、
サービス開始直後にライブカードを公開するか、
モニタリングします。同様に、関連性がなくなったカードや、
破棄されます。
ライブカードを公開する際に、ユーザーへの影響を選択できます。通知せずにパブリッシュする場合は カードはタイムラインに挿入されます。目に見える効果は加えられます。ユーザーはスワイプして 表示されます。ライブカードが直後に自動的に表示されるようにすることもできます。 できます。これは多くの場合、アプリケーションのメインのユーザー インターフェースがライブカードである場合に有用です。 アクティビティではありません。
ライブカードにコンテンツを表示する
ライブカードには、レイアウト リソースのコンテンツを表示するか、コードのレンダリングを許可することでコンテンツを表示できます。 描画サーフェスに直接追加できます。アプリケーションに最適な方法を選択する カードのコンテンツを更新する必要がある頻度と、 自由形式のグラフィックを使用できます。
リモートビューを使用してレイアウトをインフレートする
標準のウィジェットのみが必要で、更新頻度が低い(数秒ほど、または
更新間隔を長く設定したい場合は、RemoteViews
クラスを使用してカードを作成します。
RemoteViews
オブジェクトを使用すると、別のプロセスで実行される Glass タイムラインが可能になります。
作成したレイアウトをインフレートできます。
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
なお、RemoteViews
を使用するカードを公開すると、
set*
メソッドの呼び出しは、明示的に呼び出さない限りタイムラインに表示されません
ライブカードの setViews
を再度操作して、強制的に更新します。
ライブカードのサーフェスに直接描画する
アプリケーションでより頻繁な更新(1 秒あたり数回)や、より多くのレンダリングを行う必要がある場合
より精密なグラフィックが実現し、ダイレクト レンダリングが可能になり、
SurfaceHolder.Callback
をカードのサーフェスに追加します。
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
これにより、バックグラウンド スレッドの内部でサーフェスに直接描画したり、
イベント(センサーや位置情報の更新など)です。surfaceCreated
と
カードが表示されたときにレンダリング ロジックを開始および停止する surfaceDestroyed
メソッド
表示または非表示になります。
なお、サーフェス ホルダーのコールバック メソッドは、メイン UI スレッドでは呼び出されません。
ライブカード選択の処理
ライブカードには、アクション(アクティビティを開始する PendingIntent
、
サービス、ブロードキャストなど)によって、カードの選択が行われます。
通常、このアクションを使用して、オプション メニューを表示するアクティビティや、
アプリケーションの別の部分に移動できます。少なくとも 1 つのオプションを提供し
タイムラインからライブカードを削除できます。
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
アクションが設定されていないライブカードは表示されません。
ネストされたクラス | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | 公開時にカードをユーザーに表示する方法を指定します。 |
定数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | ライブカードから音声によって Intent が有効化されたことを示すブール値のエクストラ。 |
パブリック コンストラクタ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パブリック メソッド | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
ブール値 | |||||||||||
無効 |
navigate()
|
||||||||||
無効 | |||||||||||
LiveCard |
setAction(PendingIntent インテント)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(ブール値有効)
|
||||||||||
LiveCard |
setRenderer(GlRenderer レンダラ)
|
||||||||||
LiveCard |
setViews(RemoteViews ビュー)
|
||||||||||
LiveCard |
setVoiceActionEnabled(ブール値有効)
|
||||||||||
無効 |
継承されるメソッド | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
定数
パブリック コンストラクタ
パブリック メソッド
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 添付 (Service サービス)
背景のService
を貼り付けて、このカードを受け取ったとき
そのサービスはフォアグラウンドで実行されるように設定されます。
フォアグラウンド サービスが自動的に 公開中のカードは非公開になっています。
パラメータ
サービス | Chronicle SOAR は |
---|
戻り値
- 呼び出しチェーン用のこのオブジェクト
<ph type="x-smartling-placeholder"></ph> 一般公開 SurfaceHolder をご覧ください。 getSurfaceHolder ()
ダイレクト レンダリングが有効になっている場合に、描画先の Surface
へのアクセス権を付与します。
なお、返された SurfaceHolder
は、単に URL にアクセスする手段として
表示されます。表面の形状やタイプを変更するためのメソッドは特に必要ありません。
また、このオブジェクトのコールバックは UI スレッドでは作成されません。
<ph type="x-smartling-placeholder"></ph> 一般公開 ブール値 isPublished ()
カードが現在公開されている場合は、true
を返します。
<ph type="x-smartling-placeholder"></ph> 一般公開 無効 ナビ ()
タイムライン内のこのカードにユーザーを移動します。
例外
IllegalStateException | カードが公開されていない場合 |
---|
<ph type="x-smartling-placeholder"></ph> 一般公開 無効 公開 (LiveCard.PublishMode モード)
このカードをタイムラインに公開します。
カードは、アクションがあり、ダイレクト レンダリングが有効になっているか、 リモートビューが設定されています。
パラメータ
モード | カードをユーザーに提示する方法を指定します |
---|
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 setAction (PendingIntent インテント)
カードが選択されたときに実行されるアクションを変更します。
パラメータ
インテント | カードが選択されると呼び出されます |
---|
戻り値
- 呼び出しチェーン用のこのオブジェクト
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 setDirectRenderingEnabled (ブール値を有効化)
ダイレクト レンダリングを有効にします。
このモードでは、カード コンテンツを Surface
に直接レンダリングする必要があります。
このメソッドは、カードが公開されていない場合にのみ呼び出すことができます。そうでない場合は、 例外をスローします。
パラメータ
有効にする | ダイレクト レンダリングを有効にするかどうか |
---|
戻り値
- 呼び出しチェーン用のこのオブジェクト
関連項目
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 setRenderer (GlRenderer レンダラ)
OpenGL ベースのレンダラを追加します。
レンダラは、直接リクエストするサーフェスに(自動的に)描画するために使用されます。 説明します。
戻り値
- 呼び出しチェーン用のこのオブジェクト
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 setViews (RemoteViews ビュー)
このカードの UI の表示に使用される RemoteViews
を変更します。
このメソッドは、リモートビューに直接変更を加えた後にも呼び出す必要があります。 変更がない場合、それらの変更はタイムラインに反映されません。
ダイレクト レンダリングが有効になっている場合、このメソッドは機能しません。
パラメータ
回の閲覧 | カードの UI |
---|
戻り値
- 呼び出しチェーン用のこのオブジェクト
<ph type="x-smartling-placeholder"></ph> 一般公開 LiveCard をご覧ください。 setVoiceActionEnabled (ブール値を有効化)
カードがタイムラインに表示されているときに音声操作を有効にします。
設定すると、カードは「OK グラス」を認識します。タイムライン上に表示されると
このガード フレーズが発話されると、
setAction(PendingIntent)
メソッドを使用します。インテントがリクエストを開始した場合、
アクティビティを実装している場合、アクティビティは
最初のメニュー項目で開く(アクティビティ内で「オーケー グラス」が言われたかのように)
できます。この機能により、ライブカードにコンテキスト音声メニューを実装できます。
パラメータ
有効にする | 音声操作を有効にするかどうか |
---|
戻り値
- 呼び出しチェーン用のこのオブジェクト
<ph type="x-smartling-placeholder"></ph> 一般公開 無効 公開停止 ()
タイムラインでこのカードの公開を停止します。