Car App: bản chất của phát triển CarPlay và Android Auto

Tác giả: IT Sectr Đã đăng: 2026-02-15 Thời gian đọc: 9 phút

Car App — ứng dụng cho hệ thống thông tin giải trí trên ô tô, tích hợp với Apple CarPlay và Android Auto. CarPlay là công nghệ của Apple chiếu giao diện iPhone lên màn hình ô tô và được điều khiển qua Siri, màn hình cảm ứng hoặc nút trên vô lăng. Android Auto là công nghệ tương tự của Google dành cho điện thoại thông minh Android. Phát triển Car App bao gồm việc tạo ứng dụng bằng Swift với CarPlay framework và SiriKit cho iOS, và bằng Kotlin với Car App Library, MediaBrowserService và NavigationManager cho Android. Hỗ trợ Car App đang trở thành tiêu chuẩn cho xe hơi hiện đại — theo Apple, 98% xe mới ở Mỹ hỗ trợ CarPlay và Android Auto có sẵn trên hơn 200 mẫu xe.

Những điểm chính

  • Car App — ứng dụng cho CarPlay (iOS) và Android Auto (Android), tối ưu hóa cho việc sử dụng khi lái xe
  • Apple CarPlay — chiếu giao diện iPhone lên màn hình ô tô, điều khiển qua Siri và cảm ứng
  • Android Auto — chiếu điện thoại Android lên màn hình ô tô với hỗ trợ Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem để xây dựng giao diện bằng Swift
  • Car App Library — thư viện Android để tạo ứng dụng Automotive với MediaBrowserService và NavigationManager

Car App là gì

Car App — ứng dụng chạy trên hệ thống thông tin giải trí trên xe (IVI) thông qua chiếu từ điện thoại thông minh — Apple CarPlay cho iOS và Android Auto cho Android. Khác với Android Automotive OS (hệ điều hành tích hợp trên xe), CarPlay và Android Auto là các phần mở rộng của ứng dụng di động chạy trên điện thoại và chiếu giao diện lên màn hình ô tô. Car App là ứng dụng iOS/Android hiện có của bạn triển khai các giao thức CarPlay hoặc Android Auto.

Các danh mục chính của Car App: định vị (Apple Maps, Google Maps, Waze, Sygic), âm thanh (Spotify, Apple Music, YouTube Music, Audible, Castbox), nhắn tin (đọc to và đọc chính tả qua Siri/Google Assistant), chức năng ô tô (sạc EV, đỗ xe, trạng thái xe), cuộc gọi VOIP (WhatsApp, Zoom). Mỗi danh mục có mẫu giao diện riêng — ListTemplate, MapTemplate, AudioTemplate. Hệ thống tự xác định danh mục nào ứng dụng hỗ trợ dựa trên Intents đã đăng ký.

Giới hạn của Car App: Apple và Google kiểm soát chặt chẽ UX vì an toàn — số lượng phần tử tối thiểu, nút lớn (tối thiểu 48x48 pt), không nhập văn bản (chỉ giọng nói), tự động làm mờ giao diện khi lái xe, cấm video. Thời gian phản hồi khi nhấn phải dưới 100 ms. Tất cả ứng dụng đều phải qua kiểm duyệt bắt buộc (App Review cho CarPlay, Google Play Console + CTS cho Android Auto).

Apple CarPlay: CarPlay framework và SiriKit

CarPlay framework (trước đây là CPKit) — framework của Apple để tạo ứng dụng CarPlay bằng Swift. Lớp chính là CPInterfaceController, quản lý điều hướng theo mẫu. CPInterfaceController chứa ngăn xếp mẫu: CPListTemplate (danh sách), CPMapTemplate (định vị), CPNowPlayingTemplate (âm thanh), CPVoiceControlTemplate (điều khiển giọng nói). CPListTemplate chứa CPListItem — các mục danh sách với biểu tượng, văn bản và hành động.

SiriKit cho CarPlay — phần mở rộng SiriKit để điều khiển bằng giọng nói ứng dụng trong xe. Ứng dụng đăng ký Intents (INPlayMediaIntent — phát lại, INStartWorkoutIntent — tập luyện, INSendMessageIntent — tin nhắn). Siri tự động kích hoạt khi kết nối CarPlay và có sẵn qua nút điều khiển giọng nói trên vô lăng. SiriKit CarPlay hỗ trợ CarPlay Dashboard — widget trên màn hình chính CarPlay để hiển thị thông tin từ ứng dụng (điểm đến, bản nhạc hiện tại).

Quy trình kết nối CarPlay: iPhone kết nối với xe qua cáp Lightning/USB-C hoặc không dây (CarPlay Wireless, từ iOS 9). Sau khi kết nối, iOS tự động bắt đầu phiên CarPlay nếu ứng dụng triển khai CPApplicationDelegate. Nhà phát triển không kiểm soát thời điểm kết nối — hệ thống gọi các phương thức delegate khi bắt đầu và kết thúc phiên. CarPlay hỗ trợ đa nhiệm: định vị hoạt động trong nền khi chuyển sang nhạc và hướng dẫn bằng giọng nói tiếp tục phát.

Android Auto: Car App Library

Android Car App Library — thư viện Android để tạo ứng dụng tương thích với Android Auto. Các thành phần cơ bản: CarAppService — điểm vào cho Android Auto; Session — quản lý vòng đời phiên; Screen — mỗi màn hình của ứng dụng; CarScreenManager — quản lý hiển thị. Ứng dụng hỗ trợ MediaBrowserService cho nội dung đa phương tiện và NavigationManager cho hướng dẫn định vị.

MediaBrowserService — thành phần chính cho ứng dụng âm thanh. Ứng dụng triển khai MediaBrowserService và MediaSession để quản lý phát lại. Android Auto tự động hiển thị các điều khiển (Play/Pause, Next, Previous) và danh sách bản nhạc. NavigationManager được sử dụng cho ứng dụng định vị — truyền hướng dẫn rẽ, trạng thái tuyến đường và cảnh báo. NavigationManager hỗ trợ CarNotification để hiển thị hướng dẫn định vị trên thanh trạng thái Android Auto.

Yêu cầu Android Auto: ứng dụng phải có category="android.intent.category.APP_AUTO" trong tệp kê khai; phải sử dụng AndroidX và SDK tối thiểu 26+; hỗ trợ chủ đề tối (DayNight); hỗ trợ điều khiển cảm ứng và giọng nói; tuân thủ Android Auto Compatibility Test Suite (CTS). Google Play kiểm tra từng ứng dụng về tuân thủ các yêu cầu bảo mật và UX. Quy trình chứng nhận mất 1–4 tuần.

Ví dụ mã: Swift và Kotlin

Ví dụ ứng dụng định vị cho CarPlay bằng Swift sử dụng CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Tìm kiếm địa chỉ",
            detailText: "Nhập điểm đến"
        )
        searchItem.handler = { _, completion in
            // Mở màn hình tìm kiếm
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Yêu thích",
            detailText: "Địa chỉ đã lưu"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

        let section = CPListSection(items: [searchItem, favoritesItem])
        let listTemplate = CPListTemplate(
            title: "Định vị",
            sections: [section]
        )

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Hiển thị danh sách địa chỉ yêu thích
    }
}

// SiriKit Intent cho điều khiển giọng nói
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Xử lý lệnh thoại qua Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Các điểm chính: CPTemplateApplicationSceneDelegate — điểm vào cho phiên CarPlay; CPInterfaceController quản lý ngăn xếp mẫu; CPListTemplateCPListItem — thành phần UI cơ bản; .handler — trình xử lý nhấp cho mỗi mục danh sách.

Ví dụ ứng dụng định vị cho Android Auto bằng Kotlin với Car App Library:

kotlin
// CarAppService — điểm vào cho Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — quản lý vòng đời phiên
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — màn hình chính với định vị
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Tìm kiếm địa chỉ")
            .setOnClickListener { showSearchScreen() }
            .build()

        val favoritesAction = Action.Builder()
            .setTitle("Yêu thích")
            .setOnClickListener { showFavorites() }
            .build()

        return ListTemplate.Builder()
            .setTitle("Định vị")
            .setHeaderAction(Action.APP_ICON)
            .addAction(searchAction)
            .addAction(favoritesAction)
            .build()
    }

    private fun showSearchScreen() {
        screenManager.push(SearchScreen(carContext))
    }

    private fun showFavorites() {
        screenManager.push(FavoritesScreen(carContext))
    }
}

// AndroidManifest — đăng ký dịch vụ
<service
    android:name=".NavigationCarAppService"
    android:exported="true">
    <intent-filter>
        <action
            android:name="androidx.car.app.action.NAVIGATION" />
    </intent-filter>
    <category
        android:name="android.intent.category.APP_AUTO" />
</service>

Các điểm chính: CarAppService — điểm vào cho Android Auto; Session — quản lý vòng đời; Screen — mỗi màn hình của ứng dụng, trả về Template; ListTemplate — mẫu cho danh sách với Action; category.APP_AUTO — danh mục bắt buộc trong tệp kê khai.

Yêu cầu và xuất bản

Yêu cầu Apple CarPlay: ứng dụng phải tuân thủ CarPlay Distraction Design Guidelines — kích thước nút tối thiểu 48x48 pt, độ tương phản văn bản 4.5:1, không hoạt ảnh hoặc video, hỗ trợ VoiceOver. Xuất bản — qua App Store Connect, ứng dụng trải qua quy trình kiểm duyệt tiêu chuẩn của Apple. Cần chỉ rõ hỗ trợ CarPlay trong App Store Connect và đính kèm ảnh chụp màn hình giao diện CarPlay. Ứng dụng CarPlay không thể miễn phí không có quảng cáo — Apple thu phí hoa hồng 30% (15% cho doanh nghiệp nhỏ) trên các giao dịch mua trong ứng dụng.

Yêu cầu Android Auto: ứng dụng phải tuân thủ Android Auto Design Guidelines và vượt qua Android Auto Compatibility Test Suite (CTS). Xuất bản — qua Google Play Console, cần chỉ rõ danh mục "Android Auto" trong danh sách thiết bị tương thích. Google Play kiểm tra: hỗ trợ chủ đề tối (DayNight), hành vi chính xác khi mất kết nối, xử lý xoay màn hình, hỗ trợ điều khiển bằng giọng nói qua Google Assistant. Ứng dụng Android Auto không yêu cầu thêm phí hoa hồng — mô hình Google Play tiêu chuẩn (15-30%).

Tham sốApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
Ngôn ngữSwiftKotlin
Trợ lý giọng nóiSiriKitGoogle Assistant
Giao diệnCPListTemplate, CPMapTemplateListTemplate, MapTemplate
Đa phương tiệnMPNowPlayingInfoCenterMediaBrowserService
Định vịCPNavigationSessionNavigationManager
Xuất bảnApp Store ConnectGoogle Play Console
Hoa hồng15–30%15–30%
Kiểm duyệtApp Review (1–3 ngày)CTS + Google Play (1–4 tuần)

Hỗ trợ kết nối không dây: CarPlay Wireless có sẵn từ iOS 9 và yêu cầu Wi-Fi + Bluetooth. Android Auto Wireless có sẵn từ Android 11. Để kết nối không dây, xe phải hỗ trợ tiêu chuẩn tương ứng. Nhà phát triển không cần viết thêm mã — hệ điều hành xử lý kết nối tự động.

Câu hỏi thường gặp

Car App khác với ứng dụng di động như thế nào?

Car App được tối ưu hóa cho việc sử dụng khi lái xe: số lượng phần tử tối thiểu, nút lớn, điều khiển bằng giọng nói, không nhập văn bản. Ứng dụng phải tuân thủ các yêu cầu an toàn — Distraction Design Guidelines từ Apple và Google.

Những danh mục ứng dụng nào có sẵn cho CarPlay?

CarPlay hỗ trợ các danh mục: định vị (Apple Maps, Google Maps, Waze), âm thanh (Spotify, Apple Music), nhắn tin (đọc và đọc chính tả qua Siri), chức năng ô tô (sạc EV, đỗ xe) và cuộc gọi VOIP.

Làm thế nào để phát triển ứng dụng cho Android Auto?

Sử dụng Android Car App Library: triển khai CarAppService làm điểm vào, Session để quản lý vòng đời, Screen cho mỗi màn hình. Ứng dụng phải hỗ trợ MediaBrowserService cho đa phương tiện hoặc NavigationManager cho định vị.

Car App có cần kiểm duyệt không?

Có, cả hai nền tảng đều yêu cầu kiểm duyệt. Apple kiểm tra ứng dụng CarPlay qua App Review. Android Auto yêu cầu vượt qua Android Auto Compatibility Test Suite (CTS) và xác minh trong Google Play Console.

Ngôn ngữ nào được sử dụng cho Car App?

Cho CarPlay — Swift với các framework CarPlay (CPInterfaceController, CPTemplate, CPListItem) và SiriKit. Cho Android Auto — Kotlin với Car App Library và MediaBrowserService.

Tổng kết

  • Car App — ứng dụng cho CarPlay (iOS) và Android Auto (Android), tối ưu hóa cho việc sử dụng an toàn khi lái xe
  • Apple CarPlay sử dụng CarPlay framework với CPInterfaceController, CPListTemplate và SiriKit để điều khiển bằng giọng nói
  • Android Auto sử dụng Car App Library với CarAppService, Session, Screen và MediaBrowserService cho đa phương tiện
  • Điều khiển giọng nói — Siri (CarPlay) và Google Assistant (Android Auto) bắt buộc cho định vị và nhắn tin
  • Giới hạn UX — nút lớn 48x48 pt, tối thiểu phần tử, cấm video, phản hồi dưới 100 ms
  • Kiểm duyệt — App Store (1–3 ngày) và Google Play CTS (1–4 tuần) với kiểm tra bảo mật và UX
  • Kết nối không dây — CarPlay Wireless (iOS 9+) và Android Auto Wireless (Android 11+) có sẵn không cần cáp

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm