Android のリリースごとに、API と動作の変更が Android Auto と Android Automotive OS でのアプリの動作に影響します。このページでは、こうした影響の多くについて詳しく説明し、新しいバージョンの Android をサポートするようにアプリを更新する方法について説明します。
Android 16
- Android Auto は、停車中のアプリを実行する際に、向き、アスペクト比、サイズ変更の制限を無視するために、仮想デバイス オーナーのオーバーライドを使用します。
- アプリで より安全なインテントの Android 16 アップデートを使用している場合は、Android Auto と Android Automotive OS がサービスに接続できるように、
CarAppServiceの<service>要素のandroid:intentMatchingFlags属性をallowNullActionとして指定する必要がある場合があります。
Android 15
自動車向け Android アプリ ライブラリを使用する Android Automotive OS 向けアプリは、バージョン 1.7.0-rc01 以降に更新する必要があります。これにより、Android 15 以上で実行中に、権限ダイアログがトリガーされたときにバックグラウンド アクティビティの起動の変更の保護によって発生する可能性のあるクラッシュを防ぎます。
Android 15 以降をターゲットとするアプリのウィンドウ インセットの変更により、Android Automotive OS に配信されるアプリをテストして、アプリで実装されたアクティビティが意図したとおりにレンダリングされることを確認する必要があります。Android Automotive OS 固有の考慮事項について詳しくは、ウィンドウ インセットとディスプレイ カットアウトを操作するをご覧ください。
Android 14
- Android 14 以降をターゲットとするアプリではフォアグラウンド サービス タイプが必須であるため、ナビゲーションやメディア再生など、アプリが持つフォアグラウンド サービスにフォアグラウンド サービス タイプを指定していることを確認してください。
- Android 14 以降をターゲットとするアプリでは、実行時に登録されたブロードキャスト レシーバでエクスポート動作を指定する必要があるため、
CarConnectionAPI を使用するアプリはandroidx.car.app:app:1.3.0-beta01以降に更新する必要があります。Connection API をご覧ください。 - Android 14 以降のデバイスで実行される Android Auto の変更により、Android Auto アプリからスマートフォンの画面でアクティビティを起動するには、
startActivity()を呼び出すときに、スマートフォンのディスプレイの ID(DEFAULT_DISPLAY)に設定されたディスプレイ ID を含むActivityOptionsを提供する必要があります。CarContext.requestPermissions()メソッドを使用するアプリは、この修正を含むandroidx.car.app:app:1.7.0-alpha01以降に更新する必要があります。
Android 13
- 自動車向け Android アプリ ライブラリを使用して作成されたアプリの場合、
CarContextによって提供されるConfigurationのロケールは、アプリのロケールではなく、ホストアプリのアプリごとの言語設定を反映します。
Android 12
- Android 12 以降を搭載したデバイスでは、Android Auto は実行時にデバイスのUI モードを変更しません。Android Auto が実行中かどうかを検出するにはどうすればよいですか?をご覧ください。
- Android 12 以降をターゲットとするアプリのより安全なコンポーネントのエクスポートの要件により、
MediaBrowserServiceサービスとCarAppServiceサービスに対して<service>要素でandroid:exported属性を明示的に宣言する必要があります。 - Android 12 以上をターゲットとするアプリのペンディング インテントの可変性の要件により、アプリで作成されるペンディング インテントの可変性を明示的に指定する必要があります。たとえば、メッセージ アプリがメッセージへの返信やメッセージの既読マークの処理に使用するペンディング インテントなどです。