0

コンプリケーション データが更新されたことを Android Wear ウォッチ フェイスに伝えるには、ProviderUpdateRequester() メソッドを使用する必要がありますが、ComponentName が必要です。使用する正しいコンポーネント名はどれですか?

詳細:

私は、Android Wear 2.0 の合併症機能用のデータ プロバイダーを構築しています (合併症は Watch Faces に含まれます)。

マニフェストを介してシステムに更新期間を提供できますが、新しいデータがある場合にのみデータを更新したいです。

ドキュメントには、「代わりに、固定スケジュールで更新を要求するのではなく、「プッシュ スタイル」を使用して更新を送信することもできます。そのためには、更新期間を 0 に設定して、スケジュールされた更新要求が発生しないようにすることができます (またはゼロ以外の値に設定します)、ProviderUpdateRequester を使用して、必要に応じて onComplicationUpdate の呼び出しをトリガーします。".

ただし、使用する正しい ComponentName のスニペットは提供されません。私は運がないのでこれを試しました:

ComponentName.createRelative(MyService.this,MyService.class.getSimpleName());
4

1 に答える 1

2

必要なコードは次のとおりです。

ComponentName componentName =
  new ComponentName(getApplicationContext(), MyService.class);

私は実際にこれを行う方法を示すサンプルを GitHub hereに書きました。

この作業を行うクラスはUpdateComplicationDataService.java クラスです。

興味がある場合は、完全なコードの抜粋を次に示します。

ComponentName componentName =
  new ComponentName(getApplicationContext(), MyService.class);

ProviderUpdateRequester providerUpdateRequester = 
  new ProviderUpdateRequester(getApplicationContext(), componentName);

// This method only updates the specific complication id, you could
// update all with providerUpdateRequester.requestUpdateAll().
providerUpdateRequester.requestUpdate(complicationId);
于 2016-09-13T22:38:29.973 に答える