Mở rộng ứng dụng đa phương tiện của bạn sang Android cho Ô tô

Đưa ứng dụng của bạn lên các xe chạy Android Auto hoặc Android Automotive OS. Sử dụng một cấu trúc ứng dụng phù hợp cho cả hai trường hợp để mọi người đều có thể trải nghiệm ứng dụng của bạn.

Android cho Ô tô là gì?

Ứng dụng đa phương tiện dành cho ô tô có thể giúp người dùng kết nối cuộc sống kỹ thuật số của họ một cách liền mạch với ô tô. Bằng cách mở rộng các ứng dụng trên điện thoại để có thể dùng trên ô tô, bạn sẽ mang lại trải nghiệm tốt hơn cho người dùng. Bạn có thể thực hiện việc này bằng cách tích hợp với Android Auto hoặc Android Automotive OS.

Các ứng dụng Android cho ô tô phải tránh gây phân tâm cho người lái xe. Bạn có thể giảm thiểu sự phân tâm bằng cách làm theo các phương pháp hay nhất, chẳng hạn như sử dụng lệnh thoại và thiết kế hình ảnh rất thực tế. Bằng cách này, ứng dụng đa phương tiện của bạn có thể hiện cho người lái thông tin kịp thời và có liên quan, cũng như sử dụng các mẫu có thể dự đoán được cho các thao tác phổ biến.

Android Auto

Android Auto cung cấp trải nghiệm ứng dụng được tối ưu hoá cho người lái xe đối với những người dùng cài đặt ứng dụng Android Auto trên điện thoại Android và có hệ thống âm thanh nổi trên ô tô hoặc sản phẩm thay thế tương thích. Họ có thể dùng ứng dụng của bạn ngay trên màn hình ô tô bằng cách kết nối điện thoại. Bạn cho phép Android Auto kết nối với ứng dụng dành cho điện thoại bằng cách tạo các dịch vụ mà Android Auto dùng để hiển thị giao diện được tối ưu hoá cho người lái xe.

Android Automotive OS

Android Automotive OS là hệ thống thông tin giải trí dựa trên Android được tích hợp sẵn trong các xe. Hệ thống của xe là một thiết bị độc lập chạy hệ điều hành Android được tối ưu hoá cho hoạt động lái xe. Với Android Automotive OS, người dùng sẽ cài đặt ứng dụng của bạn ngay trên ô tô thay vì trên điện thoại.

Danh mục ứng dụng được hỗ trợ

Ứng dụng nghe nhìn cho phép người dùng duyệt qua và phát nhạc, đài, sách nói và các nội dung âm thanh khác trên ô tô. Để biết thêm thông tin, hãy xem bài viết Tạo ứng dụng phát âm thanh cho ô tô. Bạn cũng có thể xem thêm thông tin tại bài viết Tạo ứng dụng đa phương tiện cho ô tô.

Các ứng dụng đa phương tiện được tạo bằng MediaLibraryServiceMediaSession. Trên Android Automotive OS, bạn cũng có thể tạo màn hình đăng nhập và màn hình cài đặt (để sử dụng khi xe đậu) bằng cách sử dụng Views hoặc Compose.

Ứng dụng video cho phép người dùng xem video phát trực tuyến trong khi xe đậu. Mục đích cốt lõi của các ứng dụng này là hiển thị video phát trực tuyến. Các ứng dụng này được tạo bằng Khung hiển thị hoặc Compose. Để biết thêm thông tin, hãy xem bài viết Tạo ứng dụng phát video cho Android Automotive OS. Bạn có thể xem thêm thông tin tại bài viết Tạo ứng dụng video cho Android Automotive OS.

Tạo ứng dụng phát âm thanh cho ô tô

Hướng dẫn này giả định rằng bạn đã có một ứng dụng phát nội dung nghe nhìn cơ bản. Nếu bạn chưa có, hãy truy cập vào Tạo một ứng dụng trình phát nội dung nghe nhìn cơ bản để bắt đầu.

Hướng dẫn này cung cấp thông tin về những việc bạn cần làm, bao gồm cả đường liên kết đến các tài nguyên khác có hướng dẫn cụ thể.

Thành phần phát

Media3 cung cấp một số thành phần chính cho các trường hợp sử dụng tính năng phát. Bạn sẽ quen thuộc với các lớp tạo nên những thành phần này nếu đã từng làm việc với các thư viện đa phương tiện trước đây của Android.

Sơ đồ sau đây minh hoạ cách các thành phần này kết hợp với nhau trong một ứng dụng thông thường.

Các thành phần khác nhau của một ứng dụng đa phương tiện sử dụng Media3 kết nối với nhau theo một số cách đơn giản nhờ việc chia sẻ các giao diện và lớp.
Hình 1: Các thành phần của ứng dụng đa phương tiện

Để biết thêm thông tin, hãy xem phần Thành phần phát.

Triển khai MediaLibraryServiceMediaLibrarySession

MediaLibraryService cung cấp một API tiêu chuẩn để phân phát và cho phép truy cập vào thư viện nội dung nghe nhìn của bạn. Bạn phải thực hiện việc này khi thêm tính năng hỗ trợ cho Android Auto hoặc Android Automotive OS vào ứng dụng đa phương tiện, vì các nền tảng này cung cấp giao diện người dùng riêng, an toàn cho người lái xe cho thư viện nội dung đa phương tiện của bạn. Để biết thêm thông tin về cách triển khai và sử dụng MediaLibraryService, hãy xem bài viết Phân phát nội dung bằng MediaLibraryService.

Để điều khiển chế độ phát, hãy sử dụng một phiên nội dung nghe nhìn. API MediaSession cung cấp một cách thức tương tác phổ biến với trình phát âm thanh hoặc trình phát video. Thư viện Jetpack Media3 bao gồm MediaLibrarySession, mở rộng MediaSession để thêm các API duyệt xem nội dung.

Việc kết nối một phiên phát nội dung đa phương tiện với một trình phát cho phép ứng dụng quảng cáo chế độ phát nội dung đa phương tiện từ bên ngoài và nhận các lệnh phát từ các nguồn bên ngoài như Android Auto, Android Automotive OS hoặc Trợ lý Google. Để biết thêm thông tin, hãy xem phần Kiểm soát và quảng cáo tính năng phát bằng MediaSessionSử dụng MediaLibrarySession.

Ít nhất, phiên phát nội dung nghe nhìn của bạn phải khai báo hỗ trợ các lệnh sau đây của trình phát:

Hướng dẫn Bật bộ điều khiển chế độ phát mô tả những cách bạn có thể tuỳ chỉnh bộ điều khiển chế độ phát trong ô tô.

Khi kết nối với ứng dụng của bạn, Android Auto hoặc Android Automotive OS sẽ yêu cầu một thư viện nội dung để hiển thị, điều này sẽ kích hoạt phương thức gọi lại onGetLibraryRoot(). Bạn có thể nhanh chóng trả lại một mục nội dung nghe nhìn gốc để cho phép truy cập vào thư viện của mình. Phương thức gọi lại onGetChildren() được gọi khi Android Auto hoặc Android Automotive OS đang cố gắng duyệt qua các cấp độ sâu hơn trong thư viện nội dung của bạn.

Các nền tảng này áp dụng thêm giới hạn về cách cấu trúc thư viện nội dung của bạn. Để biết thông tin chi tiết về cách tuỳ chỉnh cách hiển thị thư viện nội dung, hãy xem hướng dẫn Tạo dịch vụ trình duyệt nội dung nghe nhìn.

Khai báo tính năng hỗ trợ Android Auto

Sử dụng mục nhập tệp kê khai sau đây để khai báo rằng ứng dụng dành cho điện thoại của bạn hỗ trợ Android Auto:

<application>
    ...
    <meta-data android:name="com.google.android.gms.car.application"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

Mục nhập tệp kê khai này là một tệp XML khai báo những chức năng của ô tô mà ứng dụng hỗ trợ. Để cho biết rằng bạn có một ứng dụng đa phương tiện, hãy thêm tệp XML có tên automotive_app_desc.xml vào thư mục res/xml/ trong dự án. Tệp này phải bao gồm nội dung sau:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

Khai báo tính năng hỗ trợ Android Automotive OS

Bạn cần tạo một mô-đun ô tô vì không phải mọi logic trong ứng dụng của bạn đều có thể dùng chung với một ứng dụng ô tô. Một số thành phần của Android Automotive OS (chẳng hạn như tệp kê khai) có những yêu cầu riêng tuỳ theo nền tảng. Tạo một mô-đun có thể tách biệt đoạn mã cho các thành phần này với đoạn mã khác trong dự án của bạn (ví dụ như đoạn mã dùng trong ứng dụng di động).

Làm theo các bước sau để thêm mô-đun ô tô vào dự án:

  1. Trong Android Studio, hãy nhấp vào File > New > New Module (Tệp > Mới > Mô-đun mới).
  2. Chọn Automotive Module (Mô-đun Automotive), rồi nhấp vào Next (Tiếp theo).
  3. Nhập Application/Library name (Tên thư viện/ứng dụng). Đây là tên ứng dụng mà người dùng sẽ nhìn thấy trên Android Automotive OS.
  4. Nhập Module name (Tên mô-đun).
  5. Điều chỉnh Package name (Tên gói) cho phù hợp với ứng dụng.
  6. Chọn API 28: Android 9.0 (Pie) cho Minimum SDK (SDK tối thiểu), sau đó nhấp vào Next (Tiếp theo).

    Mọi ô tô hỗ trợ Android Automotive OS đều chạy trên Android 9 (API cấp 28) trở lên. Vì vậy, việc chọn giá trị này sẽ nhắm đến mọi ô tô tương thích.

  7. Chọn No Activity (Không có hoạt động) rồi nhấp vào Finish (Hoàn tất).

Sau khi tạo mô-đun trong Android Studio, hãy mở AndroidManifest.xml trong mô-đun ô tô mới:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

</manifest>

Phần tử application chứa một số thông tin tiêu chuẩn về ứng dụng cùng một phần tử uses-feature khai báo việc hỗ trợ Android Automotive OS. Lưu ý rằng không có hoạt động nào được khai báo trong tệp kê khai.

Nếu bạn triển khai các chế độ cài đặt hoặc hoạt động đăng nhập, hãy thêm các chế độ cài đặt hoặc hoạt động đó vào đây. Các hoạt động này là các hoạt động duy nhất cần khai báo trong tệp kê khai cho ứng dụng trên Android Automotive OS, được hệ thống kích hoạt bằng cách sử dụng ý định tường minh.

Sau khi thêm hoạt động cài đặt hoặc đăng nhập, hãy hoàn thiện tệp kê khai bằng cách thiết lập thuộc tính android:appCategory="audio" trong phần tử application rồi thêm các phần tử uses-feature sau:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:appCategory="audio"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

    <uses-feature
        android:name="android.hardware.wifi"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.landscape"
        android:required="false" />

</manifest>

Việc thiết lập tường minh các tính năng này thành required="false" sẽ đảm bảo rằng ứng dụng của bạn không xung đột với các tính năng phần cứng hiện có trong thiết bị chạy Automotive OS.

Hãy sử dụng mục nhập tệp kê khai sau đây để khai báo rằng ứng dụng của bạn có hỗ trợ Android Automotive OS:

<application>
    ...
    <meta-data android:name="com.android.automotive"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

Mục kê khai này là một tệp XML khai báo những chức năng cho ô tô mà ứng dụng của bạn hỗ trợ.

Để cho biết rằng bạn có một ứng dụng đa phương tiện, hãy thêm tệp XML có tên automotive_app_desc.xml vào thư mục res/xml/ trong dự án. Đưa nội dung sau đây vào tệp này:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

Bộ lọc ý định

Android Automotive OS sử dụng ý định tường minh để kích hoạt các hoạt động trong ứng dụng đa phương tiện. Đừng thêm bất kỳ hoạt động nào có bộ lọc ý định CATEGORY_LAUNCHER hoặc ACTION_MAIN vào tệp kê khai.

Các hoạt động tương tự như trong ví dụ sau thường nhắm đến điện thoại hoặc một số thiết bị di động khác. Hãy khai báo các hoạt động này trong mô-đun xây dựng ứng dụng điện thoại, chứ không phải trong mô-đun xây dựng ứng dụng cho Android Automotive OS.

<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>

Các bước tiếp theo

Giờ đây, khi đã có một ứng dụng cho Android Auto và Android Automotive OS, bạn có thể muốn thực hiện các bước bổ sung để tối ưu hoá ứng dụng nhằm sử dụng an toàn hơn khi lái xe. Để biết thêm các đề xuất giúp đảm bảo trải nghiệm an toàn và thuận tiện cho người dùng, hãy xem hướng dẫn kỹ thuật về Thao tác bằng giọng nói, Biện pháp bảo vệ chống xao nhãngXử lý lỗi.

Tạo ứng dụng phát video cho Android Automotive OS

Vì ứng dụng video được phân loại riêng với ứng dụng đa phương tiện trong ô tô, nên bạn cần lưu ý một số yêu cầu cụ thể đối với ứng dụng video, như mô tả trong bài viết Tạo ứng dụng đỗ xe cho ô tôTạo ứng dụng video cho Android Automotive OS. Bạn cần làm theo hướng dẫn sau.

Đánh dấu ứng dụng của bạn là ứng dụng video

Để cho biết rằng ứng dụng của bạn hỗ trợ video, hãy thêm một tệp XML có tên là automotive_app_desc.xml vào thư mục res/xml/ trong dự án. Trong tệp này, hãy đưa vào nội dung sau đây:

<automotiveApp>
    <uses name="video"/>
</automotiveApp>

Sau đó, trong phần tử application của tệp kê khai, hãy thêm phần tử meta-data sau đây tham chiếu đến tệp XML:

<meta-data android:name="com.android.automotive"
    android:resource="@xml/automotive_app_desc"/>