Điện thoại của người dùng được kết nối với loa của ô tô khi sử dụng Android Auto. Do đó, bạn phải có các biện pháp phòng ngừa bổ sung để người lái xe bớt phân tâm.
Khi phát triển các ứng dụng đa phương tiện cho Android Auto, hãy triển khai các biện pháp bảo vệ cụ thể để giảm thiểu tình trạng mất tập trung của người lái xe. Các biện pháp bảo vệ này bao gồm:
Ngăn ứng dụng của bạn tự động phát âm thanh qua loa trên ô tô, ngay cả đối với chuông báo do người dùng lên lịch.
Quản lý cách Android Auto hiển thị thông báo khi ứng dụng của bạn chuyển đổi giữa nhạc và quảng cáo.
Để đạt được điều này, hãy dùng API CarConnection
để phát hiện xem điện thoại có chiếu lên màn hình ô tô hay không. Nếu có, hãy tắt chuông báo hoặc cung cấp một giao diện người dùng trên điện thoại để quản lý chuông báo.
Đối với quảng cáo, hãy đặt khoá siêu dữ liệu METADATA_KEY_IS_ADVERTISEMENT
để chặn các thông báo gây phiền nhiễu.
Chặn chuông báo trên ô tô
Các ứng dụng đa phương tiện trên Android Auto không được bắt đầu phát âm thanh qua loa trên ô tô trừ phi người dùng bắt đầu phát, chẳng hạn như bằng cách nhấn vào nút Phát. Ngay cả chuông báo do người dùng lên lịch trên ứng dụng đa phương tiện cũng không được bắt đầu phát nhạc qua loa trên ô tô.
Để đáp ứng yêu cầu này, ứng dụng của bạn có thể dùng CarConnection
làm tín hiệu trước khi phát âm thanh bất kỳ. Ứng dụng của bạn có thể kiểm tra xem điện thoại có đang chiếu tới màn hình ô tô hay không. Quan sát LiveData
cho loại kết nối.
Xác nhận giá trị bằng CONNECTION_TYPE_PROJECTION
.
Nếu điện thoại của người dùng đang chiếu, thì các ứng dụng đa phương tiện hỗ trợ chuông báo phải thực hiện một trong những thao tác sau:
Tắt chuông báo.
Phát lại chuông báo
STREAM_ALARM
và cung cấp một giao diện người dùng trên màn hình điện thoại để tắt chuông báo.
Xử lý quảng cáo trong nội dung đa phương tiện
Theo mặc định, Android Auto sẽ hiển thị thông báo khi siêu dữ liệu đa phương tiện thay đổi trong phiên phát âm thanh. Khi một ứng dụng đa phương tiện chuyển từ phát nhạc sang chạy quảng cáo, việc hiển thị thông báo sẽ gây phân tâm cho người dùng. Để ngăn Android Auto hiển thị thông báo, hãy đặt khoá siêu dữ liệu đa phương tiện METADATA_KEY_IS_ADVERTISEMENT
thành METADATA_VALUE_ATTRIBUTE_PRESENT
:
Kotlin
import androidx.media.utils.MediaConstants
override fun onPlayFromMediaId(mediaId: String, extras: Bundle?) {
MediaMetadataCompat.Builder().apply {
if (isAd(mediaId)) {
putLong(
MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
}
// ...add any other properties you normally would.
mediaSession.setMetadata(build())
}
}
Java
import androidx.media.utils.MediaConstants;
@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
if (isAd(mediaId)) {
builder.putLong(
MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);
}
// ...add any other properties you normally would.
mediaSession.setMetadata(builder.build());
}