開発者視点の新機能 2
Notification
ユーザ視点の新機能でも取り上げましたが、ここでは実装における注意事項や5.0対応ではどのように修正するのかなどを説明します。
Material design対応
- アイコンサークルの色の設定はNotification.BuilderのsetColor()メソッドを使う
- ステータスバーに表示されるのNotificationアイコンには色をつけない
Meterial design styleではアイコンは白と透明な背景色で構成されなくてはいけません。そのため、アイコンに色を付けることはNGです。Notificationアイコンに色が付いている場合はそのコードを削除する必要があります。
Sound and vibration対応
- Ringtone、MediaPlayer、Vibratorなどは使わない
Notification.BuilderのsetSound()、setVibrate()などのメソッドを使って、サウンドやバイブレーション設定をします。Ringtone、MediaPlayer、Vibratorなどで通知設定している場合は、そのコードを削除します。
ロックスクリーンの表示、非表示
Notification.BuilderのsetVisibility()メソッドと、setPublicVersion()メソッドで、ロックスクリーンの表示設定ができます。
Media playback
メディアの再生状態などの通知には、Notification.MediaStyle を使います。RemoteViews.RemoteViewを使わなくても簡単にNotificationで再生しているコンテンツを操作することができます。
Heads-up notification
- 重要なNotificationは優先的に表示される
動画再生などフルスクリーンモードでも優先的に表示され、重要な通知を見逃すことがなくなります。Notificationクラスにprioryフラグが追加され、以下の値が定数で用意されています。設定値が"HIGH"の場合はheads-up notificationとして扱われます。
MAX | クリティカルな通知 |
---|---|
HIGH | 重要な通知 |
DEAFULT | デフォルトの設定値で、いずれの重要度にも含まれないもの |
LOW | 緊急性がない通知 |
MIN | ユーザの背景に関連する情報。例えば現在地に合わせた気象情報など |
RemoteControlClientの廃止
RemoteControlClientクラスは廃止されるので、MediaSession APIに切り替えましょう。
MediaSession APIの特徴
- メディアコントローラ、ボリュームキー、再生、停止などのメディアボタンの操作や、メディア情報が取得可能
- デバイスがロック状態でも操作することができる
- それらを実現するためのNotification.MedhiaStyleテンプレートが用意されている
- アプリケーションがAndroid WearやAndroidTV上で実行されている場合、MediaSessionクラスを実装する。
- Androidデバイス上のメディアボタンのイベントを受信する場合にMediaSessionを実装する必要がある
スクリーンの共有
android.media.projection APIが追加され、画面キャプチャと画面共有機能ができるようになりました。これにより、ビデオ会議アプリなどで画面共有するアプリケーション作成することができます。
所感
スマートフォンからはじまり、タブレット、ウェアラブル、TV、車などプラットフォームの拡大。さらに、マテリアルデザインなどUI、UX。他にもゲームや、組み込みなど様々な舞台でAndroidが活躍しています。 Androidという世界がさらに広がってきました。Lollipopは何からはじめていこうかと思っている方は、まずは自分の注力する分野を決めてみてはいかがでしょうか。
筆者も今回のアップデートはどこから学習していこうか悩んでいますが、ひとまず、ウェアラブル連携を意識した開発を勉強していこうと思います。