スマートフォン・ジン | Smartphone-Zine

引っ越し先→ https://smartphone-zine.com/

Android Wearの通知にページを追加する

さて、今日は通知にページを追加する方法です。 昨日までの記事は以下になります。

  • GoogleがスマートウォッチOS “Android Wear” を発表したのでテスターになってみた
  • Android Wearで通知から音声入力を受け取る
  • Android WearでRemoteInputを使って通知から音声入力を受け取るとろこまで試してみる

それではこちらを翻訳しながら理解を深めていきましょう。 Adding Pages to a Notification

通知にページを追加する

携帯デバイス上でアプリケーションを開くことなく、より多くの情報を提供したい場合には、Android Wearの通知に1つ以上のページを追加することが出来ます。 追加ページはメインの通知カードの右側に表示されます。複数ページをデザインするための情報は Design Principles of Android Wearを参照して下さい。 複数ページを持つ通知を作成する場合、携帯デバイスまたはタブレット上に表示するメインとなる(最初のページとなる)通知を作成することから始めます。次に、addPage()メソッドで1つのページ追加するか、addPage()メソッドでコレクション内の複数ページを追加します。 例として、通知に2つ目のページを追加するコードを示します。 [java] // メインとなる通知のBuilderを作成します。 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.new_message) .setContentTitle("Page 1") .setContentText("Short message") .setContentIntent(viewPendingIntent); // BigTextStyleの2つ目のページを作成します。 BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.setBigContentTitle("Page 2") .bigText("A lot of text..."); // 2つ目のページの通知を作成します。 Notification secondPageNotification = new NotificationCompat.Builder(this) .setStyle(secondPageStyle) .build(); // メインとなる通知を作成し2つ目のページを追加します。 Notification twoPageNotification = new WearableNotifications.Builder(notificationBuilder) .addPage(secondPageNotification) .build(); [/java] では実際に実行してみましょう。 昨日作成したアプリケーションに追加してみましょう。ボタンをおした時の処理を以下のように修正します。 [java] findViewById(R.id.button).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int notificationId = 001; String EXTRA_VOICE_REPLY = "extra_voice_reply"; // 返信アクションのインテントを作成 Intent replyIntent = new Intent(getApplicationContext(), ReplyActivity.class); PendingIntent replyPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, replyIntent, 0); // メインとなる通知の作成 NotificationCompat.Builder replyNotificationBuilder = new NotificationCompat.Builder(MainActivity.this) .setSmallIcon(android.R.drawable.ic_dialog_email) .setContentTitle("embossさんからメッセージ") .setContentText("I love KitKat!") .setContentIntent(replyPendingIntent); // BigTextStyleの2つ目のページを作成します。 NotificationCompat.BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.setBigContentTitle("Page 2") .bigText("A lot of text..."); // 2つ目のページの通知を作成します。 Notification secondPageNotification = new NotificationCompat.Builder(getApplicationContext()) .setStyle(secondPageStyle) .build(); // 定義済みテキストよる返答を追加 String replyLabel = getResources().getString(R.string.reply_label); String[] replyChoices = getResources().getStringArray(R.array.reply_choices); // リモート入力の作成 RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY) .setLabel(replyLabel) .setChoices(replyChoices) .build(); // ウェアラブル通知の作成とリモート入力の追加 // メインとなる通知を作成し2つ目のページを追加します。 Notification replyNotification = new WearableNotifications.Builder(replyNotificationBuilder) .addRemoteInputForContentIntent(remoteInput) .addPage(secondPageNotification) .build(); // NotificationManagerサービスのインスタンスを取得します NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext()); // 通知マネージャーで通知を作成し発行します notificationManager.notify(notificationId, replyNotification); } }); [/java] それでは実行してみましょう。左にスワイプすると、ページが増えていることが確認できると思います。