本日、Android 17 の 2 つ目のベータ版をリリースします。プライバシー、セキュリティ、洗練されたパフォーマンスを重視したプラットフォームの構築に向けた取り組みを継続しています。このアップデートでは、スポイト API やプライバシーの保護の連絡先ピッカーなど、さまざまな新機能が提供されます。また、高度な測距、デバイス間のハンドオフ API なども追加します。
このリリースでは、リリース ケイデンスの変更が継続されます。第 2 四半期のこの年次メジャー SDK リリースに続き、マイナー SDK アップデートが実施されます。
ユーザー エクスペリエンスとシステム UI
バブル
バブルは、メッセージ バブル API とは別の新しいフローティング UI エクスペリエンスを提供するウィンドウ モード機能です。スマートフォン、折りたたみ式デバイス、タブレットで、ランチャーのアプリ アイコンを長押ししてアプリバブルを作成できます。大画面では、タスクバーの一部としてバブルバーが表示されます。ユーザーは、バブルバーでバブルを整理したり、バブル間を移動したり、バブルを画面上のアンカー ポイントに移動したりできます。
アプリがバブルとして正しく動作するように、マルチ ウィンドウ モードをサポートするためのガイドラインに沿って対応する必要があります。
バブルはベータ版 2 ではまだ完全に有効になっていません。Android 17 の今後のビルドでご確認ください。
EyeDropper API
新しいシステムレベルの EyeDropper API を使用すると、アプリは機密性の高いスクリーン キャプチャ権限を必要とせずに、ディスプレイ上の任意のピクセルから色をリクエストできます。
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result -> if (result.resultCode == Activity.RESULT_OK) {
val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
// Use the picked color in your app
}
}
fun launchColorPicker() {
val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
eyeDropperLauncher.launch(intent)
}連絡先選択ツール
ACTION_PICK_CONTACTS を介した新しいシステムレベルの連絡先選択ツールは、ユーザーがリクエストした特定のデータ フィールドのみに一時的なセッションベースの読み取りアクセス権を付与し、広範な READ_CONTACTS 権限の必要性を軽減します。また、デバイスの個人用プロファイルまたは仕事用プロファイルから選択することもできます。
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it.data?.data ?: return@rememberLauncherForActivityResult
// Handle result logic
processContactPickerResults(uri)
}
}
val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
putExtra(EXTRA_ALLOW_MULTIPLE, true)
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}
contactPicker.launch(intent)タッチパッドでのポインタ キャプチャの互換性が向上
以前は、アプリがポインタをキャプチャしたときに、タッチパッドはマウスとはまったく異なる方法でイベントを報告していました。マウスが報告する相対的な移動ではなく、パッド上の指の位置を報告していました。そのため、一人称視点のゲームでタッチパッドを適切にサポートすることが非常に困難でした。これで、タッチパッドがキャプチャされると、ポインタの移動とスクロールのジェスチャーがデフォルトで認識され、マウスイベントと同じようにレポートされるようになります。新しい「絶対」モードで明示的にキャプチャをリクエストすることで、以前の詳細な指の位置データをリクエストすることもできます。
// To request the new default relative mode (mouse-like events) // This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE view.requestPointerCapture() // To request the legacy absolute mode (raw touch coordinates) view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)
インタラクティブなチューザの静止境界
Android の ChooserSession で getInitialRestingBounds を呼び出すことで、アニメーションとデータ読み込みの完了後に Chooser が占めるターゲット位置をアプリで特定し、UI の調整をより適切に行うことができます。
接続とクロスデバイス
クロスデバイス アプリのハンドオフ
新しい Handoff API を使用すると、Android タブレットなどの別のデバイスで再開するアプリの状態を指定できます。有効にすると、システムは CompanionDeviceManager を介して状態を同期し、ユーザーの近くにあるデバイスのランチャーにハンドオフの候補を表示します。この機能は、タスクをシームレスに継続できるように設計されており、ユーザーは Android エコシステム全体でワークフローを中断したところから正確に再開できます。重要なのは、Handoff がネイティブ アプリ間の移行とアプリからウェブへのフォールバックの両方をサポートしていることです。これにより、最大限の柔軟性が提供され、受信側のデバイスにネイティブ アプリがインストールされていない場合でも、完全なエクスペリエンスが保証されます。
高度な測距 API
2 つの新しい測距テクノロジーのサポートを追加します。
- UWB DL-TDOA。アプリが UWB を屋内ナビゲーションに使用できるようにします。この API サーフェスは FIRA(Fine Ranging Consortium)4.0 DL-TDOA 仕様に準拠しており、プライバシーを保護した屋内ナビゲーション(アンカーによるデバイスのトラッキングを回避)を可能にします。
- 近接検出: アプリが WFA(WiFi Alliance)で採用されている新しい測距仕様を使用できるようにします。このテクノロジーは、既存の Wi-Fi Aware ベースの測距仕様と比較して、信頼性と精度が向上しています。
データプランの強化
メディアの品質を最適化するため、アプリは getStreamingAppMaxDownlinkKbps と getStreamingAppMaxUplinkKbps を使用して、ストリーミング アプリケーション用に割り当てられた最大データレートを取得できるようになりました。
コア機能、プライバシー、パフォーマンス
ローカル ネットワークへのアクセス
Android 17 では、不正なローカル ネットワーク アクセスからユーザーを保護するため、ACCESS_LOCAL_NETWORK 実行時の権限が導入されました。これは既存の NEARBY_DEVICES 権限グループに該当するため、すでに他の NEARBY_DEVICES 権限を付与しているユーザーには、再度プロンプトが表示されることはありません。この権限を宣言してリクエストすることで、アプリはスマートホーム デバイスやキャスト レシーバなどのローカル エリア ネットワーク(LAN)上のデバイスを検出して接続できます。これにより、悪意のあるアプリが制限のないローカル ネットワーク アクセスを利用して、ユーザー トラッキングやフィンガープリントを密かに実行することを防ぎます。Android 17 以降をターゲットとするアプリには、LAN デバイスとの通信を維持するための 2 つの方法が用意されています。システムが仲介するプライバシー保護デバイス選択ツールを採用して権限プロンプトをスキップするか、実行時にこの新しい権限を明示的にリクエストしてローカル ネットワーク通信を維持します。
タイムゾーン オフセット変更ブロードキャスト
Android では、夏時間への移行など、システムのタイムゾーン オフセットが変更されたときにトリガーされる信頼性の高いブロードキャスト インテント ACTION_TIMEZONE_OFFSET_CHANGED が提供されるようになりました。これは、Unix タイムスタンプが変更されたときとタイムゾーン ID が変更されたときにそれぞれトリガーされる既存のブロードキャスト インテント ACTION_TIME_CHANGED と ACTION_TIMEZONE_CHANGED を補完するものです。
NPU の管理と優先順位付け
Android 17 をターゲットとし、NPU に直接アクセスする必要があるアプリは、NPU へのアクセスがブロックされないように、マニフェストで FEATURE_NEURAL_PROCESSING_UNIT を宣言する必要があります。これには、LiteRT NPU デリゲート、ベンダー固有の SDK、非推奨の NNAPI を使用するアプリが含まれます。
ICU 78 と Unicode 17 のサポート
コア国際化ライブラリが ICU 78 に更新され、新しいスクリプト、文字、絵文字ブロックのサポートが拡大され、時間オブジェクトの直接フォーマットが可能になりました。
SMS OTP 保護
Android では、OTP を含む SMS メッセージへのアクセスを自動的に遅延させることで、SMS OTP の保護を強化しています。以前は、SMS Retriever 形式の保護が中心で、SMS Retriever ハッシュを含むメッセージの配信がほとんどのアプリで 3 時間遅延していました。ただし、デフォルトの SMS アプリなどの特定のアプリと、ハッシュに対応するアプリは、この遅延の対象外です。今回の更新では、OTP を含むすべての SMS メッセージに保護が拡大されます。ほとんどのアプリでは、OTP を含む SMS メッセージは 3 時間の遅延後にのみアクセス可能になります。これは、OTP のハイジャックを防ぐためです。SMS_RECEIVED_ACTION ブロードキャストは保留され、SMS プロバイダのデータベース クエリはフィルタされます。SMS メッセージは、遅延後にこれらのアプリで利用できるようになります。
WebOTP 形式の SMS メッセージへのアクセスが遅延する
アプリに SMS メッセージを読み取る権限があるものの、ドメイン検証で OTP の対象受信者ではないと判断された場合、WebOTP 形式の SMS メッセージは 3 時間経過後にのみアクセス可能になります。この変更は、メッセージに記載されているドメインに関連付けられたアプリのみが認証コードをプログラムで読み取れるようにすることで、ユーザーのセキュリティを強化することを目的としています。この変更は、対象 API レベルにかかわらず、すべてのアプリに適用されます。
OTP を使用した標準 SMS メッセージへのアクセスが遅延する
WebOTP または SMS Retriever 形式を使用しない OTP を含む SMS メッセージの場合、ほとんどのアプリで OTP SMS にアクセスできるのは 3 時間後のみとなります。この変更は、Android 17(API レベル 37)以上をターゲットとするアプリにのみ適用されます。
デフォルトの SMS アプリ、アシスタント アプリ、接続デバイス コンパニオン アプリなど、一部のアプリはこの遅延の対象外となります。
OTP 抽出のために SMS メッセージの読み取りに依存するすべてのアプリは、機能を継続的に利用できるように、SMS Retriever API または SMS User Consent API を使用するように移行する必要があります。
Android 17 のスケジュール
このベータ版から、3 月を目標とするプラットフォームの安定性マイルストーンに迅速に移行する予定です。このマイルストーンでは、最終版の SDK/NDK API を提供します。それ以降、アプリは SDK 37 をターゲットにして Google Play に公開できるようになり、Android 17 の一般提供が開始されるまでの数か月間でテストを完了し、ユーザー フィードバックを収集できます。
1 年間のリリース
Android 17 は、四半期ごとのリリースでアップデートが継続的に提供される予定です。第 2 四半期のリリースでは、アプリの動作を中断させる変更が導入される予定です。第 4 四半期には、追加の API と機能を備えたマイナー SDK リリースを予定しています。
Android 17 を使い始める
サポートされている Google Pixel デバイスを登録すると、このアップデートと今後の Android ベータ版のアップデートを無線(OTA)で入手できます。Google Pixel デバイスをお持ちでない場合は、Android Studio で Android Emulator の 64 ビット システム イメージを使用できます。
現在 Android ベータ プログラムに参加している場合は、ベータ版 2 への無線アップデートが提供されます。
Android 26Q1 ベータ版をご利用で、26Q1 の最終安定版リリースを適用してベータ版を終了したい場合は、26Q2 ベータ版 2 への無線アップデートを無視して、26Q1 のリリースをお待ちください。
皆様からのフィードバックをお待ちしております。フィードバック ページから、問題の報告や機能リクエストの送信をお願いいたします。早期にフィードバックをお送りいただくと、最終リリースにより多くのフィードバックを反映させることができます。
Android 17 で最適な開発エクスペリエンスを実現するには、Android Studio(Panda)の最新プレビュー版を使用することをおすすめします。セットアップが完了したら、以下の手順を行います。
- 新しい SDK でコンパイルし、CI 環境でテストし、フィードバック ページのトラッカーで問題を報告してください。
- 現在のアプリの互換性をテストし、Android 17 の変更による影響を受けるかどうかを確認します。また、Android 17 を実行しているデバイスまたはエミュレータにアプリをインストールして、徹底的にテストします。
Android 17 のリリース サイクル全体を通して、プレビュー版/ベータ版のシステム イメージと SDK を定期的に更新します。ベータ版ビルドをインストールすると、今後のアップデートが自動的に提供されます。
それ以降のプレビュー版とベータ版はすべて無線(OTA)で提供されます。
詳細については、Android 17 デベロッパー サイトをご覧ください。
会話に参加する
今年後半の Platform Stability と Android 17 の一般提供に向けて、皆様からのフィードバックは引き続き Google の最も貴重な財産となります。Canary チャンネルのアーリー アダプターの方も、Beta 2 でテストしているアプリ デベロッパーの方も、ぜひコミュニティに参加してフィードバックをお寄せください。ぜひお聞かせください。
-
プロダクト ニュース本日、最初の長期タスク(LHT)をリリースします。これは、エンジニアが完了するまでに数日、場合によっては 1 週間かかるほど複雑なタスクです。また、対応するモデル プロバイダのエージェントから、エージェント評価も導入します。
Matthew McCullough • 所要時間: 3 分 -
プロダクト ニュース本日、Android 17 をリリースし、サポート対象のほとんどの Google Pixel デバイスでご利用いただけるようにしました。今後数か月以内に、Android 17 を搭載した新しいデバイスがリリースされる予定です。
Matthew McCullough • 所要時間: 13 分 -
プロダクト ニュースGoogle I/O '26 では、Android デベロッパー向けに 17 個の重要な発表が行われました。エージェント主導の生産性、UI 標準としての Compose First、拡大するエコシステム向けの高性能メディアとアダプティブ開発に焦点が当てられています。
Matthew McCullough • 所要時間: 8 分
Android 開発に関する最新の分析情報を毎週メールでお届けします。