web-dev-qa-db-ja.com

ハンドヘルドからウェアに通知を送信してウェアデバイスでアクティビティを開く方法

ハンドヘルド(Androidフォン)からウェアデバイスに通知を送信して、ウェアデバイスでアクティビティを開くことは可能ですか?私がやりたいことは以下の通りです。

enter image description here

これまでに以下のドキュメントを確認しましたが、やりたいこととは異なります。

  • 通知へのウェアラブル機能の追加
    • ここで説明するのは、電話からウェアに通知を送信してから、電話でアクティビティを開くことです(ウェアでアクティビティを開きたい)。
  • カスタム通知の作成
    • ここで説明するのは、ウェアからウェアに通知を送信し、次にウェアでオープンアクティビティを送信することです(電話からウェアに通知を送信したい)。

何か案は?

34
Poly

これに使用するパターンは次のとおりです。

  1. モバイルで DataItem を作成します。接続されているウェアラブルと自動的に同期されます。
  2. ウェアラブルでWearableListenerServiceを実装し、onDataChangedイベントをリッスンします。
  3. DataItemを受け取ったら、通知を作成し(DataItemで送信されたデータを使用)、ローカルに(つまり、ウェアラブルで)送信します。通知でsetContentIntent()を使用して、ウェアラブルアクティビティを起動する保留中のインテントを指定します。
  4. DataItemを削除できるように、ユーザーがウェアラブルの通知を却下したときに発生するインテントも提供することを忘れないでください。それ以外の場合は、更新イベントを受け取りません。

私は サンプルプロジェクト を作成しました。これはすべての動作を示しています。

チェックアウト この質問onDataChangedメソッドが呼び出されない場合。

51
Peter Friese

ほとんどの場合、通知内にアプリのアクティビティを含める方が良いと思います。たとえば、通知の[開く]ボタンの代わりに、setDisplayIntent(notificationPendingIntent)を使用して、以下に説明するように、通知の一部としてアクティビティを表示できます。 http://developer.Android.com/training/ wearables/apps/layouts.html

これにより、アプリと通知の間の両方の状況のベストを得ることができます。

2
Graydyn Young