細か過ぎて伝わってないけど開発者が知っておきたいAndroid Mの新機能まとめ:Androidで動く携帯Javaアプリ作成入門(58)(5/6 ページ)
Google I/O 2015で発表された次期版Android M。Google Now on tapで使うアシストAPIや、App Links、App Permissions、省電力のDoze/App Stanby、決済機能Android Payなどで使う指紋認証機能など新機能を分類して紹介。
UI関連の変更点
Bluetoothで通信するスタイラス(ペン型デバイス)のサポート
Android MはBluetoothで通信するスタイラス(ペン型デバイス)を使用して、ユーザーの入力改善をサポートします。ユーザーはスマートフォンやタブレットにスタイラスをBluetoothでペアリングできます。接続している間、タッチスクリーンイベントには位置情報に加えてスタイラスからの圧力とボタン情報が加わります。
アプリはスタイラスによるボタン押下と、その次のアクションを、新しいView.onStylusButtonPressListenerとGestureDetector.OnStylusButtonPressListenerコールバックを登録することでイベントとして受け取れます。
MotionEventのメソッドと定数を使用し、スタイラスのボタン操作を検出するには以下のように行います。
- ユーザーがアプリ画面のボタンをスタイラスでタッチすると、getTooltype()はTOOL_TYPE_STYLUSを返す
- Android Mをターゲットとするアプリは、ユーザーがスタイラスの第一ボタンを押した際に、getButtonState()がMotionEvent.STYLUS_BUTTON_PRIMARYを返す。スタイラスの第二ボタンがある場合、MotionEvent.STYLUS_BUTTON_SECONDARYを返す。ユーザーがボタンを同時押しした場合は論理和(STYLUS_BUTTON_PRIMARY|STYLUS_BUTTON_SECONDARY)を返す
- アプリのターゲットがAndroid M未満の場合、getButtonState()はスタイラスの第一ボタンを押した場合BUTTON_SECONDARYを、第二ボタンを押した場合はBUTTON_TERTIARYを返す
テキスト選択
ユーザーがテキストを選択すると、アプリはカット、コピー、ペーストアクションをフローティングツールバーとして表示させることができます。これはアクションバーに表示されるものと同様で、ユーザーの行動に応じたアクションを表示させることができます。
テキスト選択時のフローティングツールバーを実装するには、アプリに以下の修正を施します。
- ActivityまたはViewで、startActionMode(Callback)、startActionMode(Callback, ActionMode.TYPE_FLOATING)を呼び出し、ActionModeを変更する
- アプリに実装されているActionMode.CallbackをActionMode.Callback2に拡張する
- Callback2.onGetContentRect()をオーバーライドする(テキスト選択矩形などを取得する)
- 有効な矩形の位置を無効にする場合、ActionMode.invalidateContentRect()を呼び出す
Android TV向け「4Kディスプレー」モード
Android Mでは、実行するアプリが表示解像度互換のあるハードウエア上で4Kレンダリングにアップグレードすることを要求できます。現在の物理解像度を照会するには、新しいandroid.view.Display.Modeを使用します。UIが低い論理解像度で描画され、物理的な解像度にアップスケールされる場合、解像度が物理的に上がり、Display.Mode.getPhysicalWidth()とgetSize()の返す値が異なる場合があることに注意してください。
開発者はWindowManager.LayoutParams.preferredDisplayModeIdプロパティをアプリ内のウインドーに設定することにより、物理解像度を変更するようにシステムに要求できます。この機能は4K解像度に変更したい場合に使用できます。4Kディスプレーモード中は、UIを、例えば1080pなどで、元の解像度でレンダリングされるようにしつつ、SurfaceViewオブジェクトはネイティブ解像度のコンテンツを表示できます。
ColorStateListテーマ
Android Mでは、テーマ属性がColorStateListをサポートしました。getColorStateList()とgetColor()は非推奨になりました。もし、これらのAPIを呼び出すなら、代わりに新しいContext.getColorStateList()とContext.getColor()を使用してください。
これらメソッドは、もちろんappcompatライブラリv4のContextCompatでも利用可能です。
通知(Notification)に関する変更点
Android Mでは、Notificationについて以下のAPI変更がありました。
- 新しいアラーム専用モードを邪魔しないフィルターNotificationListenerService.INTERRUPTION_FILTER_ALARMSの追加
- ユーザーのスケジュールリマインダーにおいて、他のイベント(CATEGORY_EVENT)なのか、アラーム(CATEGORY_ALARM)なのかを区別するために使用されているカテゴリ値Notification.CATEGORY_REMINDERの追加
- 通知に添付できるNotification.Builder.setSmallIcon(Icon)メソッドとNotification.Builder.setLargeIcon(Icon)メソッドを含むandroid.graphics.drawable.Iconの追加
- アプリから現在の通知が生きているかどうかを調べることができるNotificationManager.getActiveNotifications()の追加。この機能を使うためには「Active Notificationsサンプルアプリ」を参照のこと
音声対話
Android Mは音声操作に加えてアプリに音声会話体験を構築する新しい音声対話APIが提供されます。Activityはandroid.app.Activity.isVoiceInteraction()を呼び出して、音声操作に応答したかどうかを判断します。応答があった場合、アプリはandroid.app.VoiceInteractorを使用してユーザーからの音声確認を要求するためにオプションリストなどから選択できます。
音声操作を実装の詳細については「音声操作開発者サイト」を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 変わらないと生き残れないAndroid Lの新機能まとめ
新しいUIテーマ「Material Design」や、新しいランタイム「ART」、生まれ変わったNotification、Android TVアプリ、グラフィックス、マルチメディア、ストレージ、ネットワーク周りなどの新機能をテーマ別に紹介します。 - Android L、Android Wear、Android TV、Android Autoの開発者向け現状まとめ
米グーグルが「Google I/O 2014」で発表した次期Android「Android L」「Android TV」「Android Auto」の開発者プレビュー、そして「Android Wear」の正式版。これらに対応したアプリを開発するには、どこを見ればいいのか。概要とともに簡単にまとめてみた。 - あなたの知らないAndroid SDKの便利tools、14選まとめ
SDKに含まれている便利なツールを、デバッガー/プロファイラー、コード解析/難読化、画像ファイル最適化、アプリ外部のデータリソース操作の4種類に分けて紹介。 - 低性能端末でも使えるか? Android 4.4 KitKatの新機能39選
消費電力の削減につながる新機能や、よりシンプルになったUI、印刷やストレージアクセス、SMSなどの新機能をテーマ別に紹介します。 - 新タブレット時代を見据えるAndroid 4.2の新機能9選
タブレットでのマルチユーザー機能、360度パノラマ撮影機能「Photo Sphere」、Gesture Typing、ワイヤレス通信で大スクリーンへ投影する「MiraCast」対応、Quick Settings、「Google Now」の機能強化、ウィジェットのロック画面対応など厳選して紹介 - 知らないと残念過ぎるAndroid 4.1の新機能36選
Google NowやCloud Messaging、Knowledge Graph、Project Butter、Google Playなどの新機能をテーマ別に紹介 - 開発者が知らないと損するAndroid 4.0の新機能44選
AndroidビームやWi-Fiダイレクト、ライブエフェクト、顔認識、スクリーンリーダ、ソーシャル系などの新機能をテーマ別に紹介