Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Phát sóng di động

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Mô-đun CellBroadcast làm giảm nỗ lực lặp đi lặp lại đối với các OEM (do đó làm giảm sự phân mảnh trong hệ sinh thái Android và cung cấp hành vi nhất quán cho người dùng cuối) và giúp hợp lý hóa việc kiểm tra và chứng nhận của nhà cung cấp dịch vụ cho các yêu cầu liên quan đến CellBroadcast (vì OEM không thể sửa đổi mã ). Mô-đun này có thể cập nhật, có nghĩa là nó có thể nhận các bản cập nhật cho chức năng ngoài chu kỳ phát hành Android thông thường.

Định dạng gói

Mô-đun CellBroadcast bao gồm dịch vụ và ứng dụng sau.

  • Dịch vụ CellBroadcastService hỗ trợ giải mã CellBroadcast SMS, phân vùng địa lý cho cảnh báo khẩn cấp không dây (WEA) 3.0, kiểm tra trùng lặp tin nhắn và truyền tin nhắn tới các ứng dụng. Đó là một dịch vụ nhắn tin được nhắm mục tiêu địa lý và có hàng rào địa lý từ một đến nhiều được thiết kế để gửi tin nhắn đến nhiều người dùng điện thoại di động, trong một khu vực xác định, cùng một lúc. Dịch vụ được xác định bởi ủy ban ETSI GSM, 3GPP , và là một phần của tiêu chuẩn viễn thông.

  • Ứng dụng CellBroadcastReceiver là ứng dụng hệ thống mặc định xử lý các cảnh báo khẩn cấp và khẩn cấp (chẳng hạn như cảnh báo màu hổ phách và cảnh báo tổng thống) và hiển thị thông tin cho người dùng cuối dựa trên các quy định của nhà cung cấp dịch vụ và khu vực.

Luồng tin nhắn CellBroadcast

Hình sau đây cho thấy luồng thông báo CellBroadcast.

Luồng tin nhắn CellBroadcastReceiver

Hình 1. Luồng thông báo CellBroadcastReceiver

  1. Lớp giao diện vô tuyến (RIL) thông báo cho InBoundSMSHandler về một SMS CDMA / GSM CellBroadcast.

  2. Khung chuyển tiếp SMS CellBroadcast tới mô-đun CBS để phân tích cú pháp và xử lý tin nhắn đến.

  3. Sau khi thông báo được xử lý, CellBroadcastService chuyển tiếp ý định đến ứng dụng CellBroadcastReceiver mặc định của hệ thống.

  4. Ứng dụng CellBroadcastReceiver hiển thị thông báo cho người dùng.

Định dạng mô-đun

Ứng dụng CellBroadcastService và CellBroadcastReceiver được bao gồm trong một tệp APEX ( com.google.android.cellbroadcast ), có sẵn cho các thiết bị chạy Android 11 trở lên. Mô-đun bao gồm mã trong package/app/CellBroadcastReceiver và di chuyển các lớp khung hiện có sang packages/modules/CellBroadcastService .

Phụ thuộc mô-đun

Mô-đun CellBroadcast tương tác với khuôn khổ chỉ sử dụng @SystemApi ổn định (không có @hide API) và phụ thuộc vào các thư viện tĩnh sau.

  • Androidx.legacy_legacy-support-v13
  • Androidx.recyclerview_recyclerview
  • Androidx.preference_preference
  • androidx.legacy_legacy-preference-v14
  • androidx.appcompat_appcompat

Bạn có thể tùy chỉnh cấu hình bằng cách sử dụng lớp phủ tài nguyên thời gian chạy (RRO) .

Cấu hình quyền

Mô-đun CellBroadcast được ký bằng chữ ký Google thay vì chữ ký nền tảng, có nghĩa là mô-đun mất quyền truy cập vào quyền đối với chữ ký. Thay vào đó, Android 11 xác định quyền chữ ký mới com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY bên trong mô-đun CellBroadcast; chỉ các gói trong mô-đun mới có thể nhận được quyền vì chúng được ký bằng cùng một khóa. Quyền này cho phép ứng dụng CellBroadcastReceiver có toàn quyền truy cập vào cơ sở dữ liệu bên trong CellBroadcastService.

Nền tảng này cấp quyền thời gian chạy android.permission.READ_CELL_BROADCASTS cho ứng dụng SMS hệ thống mặc định để truy cập lịch sử cảnh báo khẩn cấp.

Tích hợp mô-đun CellBroadcast

Phần này mô tả cách tích hợp mô-đun CellBroadcast.

Tích hợp với Cài đặt

Bạn có thể quyết định nơi tích hợp cài đặt CellBroadcast trong ứng dụng Cài đặt (người dùng cuối truy cập trang cài đặt CellBroadcast từ Cài đặt > Ứng dụng & Thông báo > Nâng cao> Cảnh báo khẩn cấp ). Để khởi chạy ứng dụng CellBroadcastReceiver từ ứng dụng Cài đặt, hãy thay đổi cấu hình cài đặt sau bằng tên gói com.google.android.cellbroadcastreceiver .

<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.google.android.cellbroadcastreceiver</string>

Tích hợp với các ứng dụng nhắn tin

Bạn có thể tích hợp liên kết ứng dụng vào ứng dụng nhắn tin để mở lịch sử tin nhắn CellBroadcast. Trong ứng dụng Nhắn tin trên Android, tính năng này đã được tích hợp vào Cài đặt > Nâng cao > Cảnh báo khẩn cấp . Để tích hợp liên kết trong ứng dụng nhắn tin của riêng bạn, hãy xác định đường dẫn trong ứng dụng nhắn tin và định cấu hình tên thành phần cho mô-đun CellBroadcast là com.google.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

Tích hợp với hộp thư SMS

Bạn có thể bật hiển thị tin nhắn CellBroadcast trong ứng dụng nhắn tin mặc định bằng cách ghi đè cấu hình sau bằng cách sử dụng lớp phủ tài nguyên thời gian chạy.

<item type="bool" name="enable_write_alerts_to_sms_inbox" />

Vì việc cấp quyền nằm ngoài phạm vi của mô-đun CellBroadcast, bạn phải cấp quyền AppOpsManager.OP_WRITE_SMS cho mô-đun CellBroadcast để cung cấp hỗ trợ đầu cuối. Để triển khai tham chiếu AOSP, hãy tham khảo bản vá SmsApplication.java này .

Khởi chạy ứng dụng CellBroadcastReceiver

Ứng dụng CellBroadcastReceiver có các điểm khởi chạy sau.

  • Menu ứng dụng Cài đặt.

  • Một ứng dụng (bao gồm các ứng dụng của bên thứ ba), chẳng hạn như ứng dụng tin nhắn liên kết đến lịch sử tin nhắn CellBroadcast.

  • (Tùy chọn) Biểu tượng khởi chạy từ màn hình chính Android do OEM thêm vào. Để biết chi tiết, hãy xem Thêm biểu tượng khởi chạy .

Cài đặt ứng dụng CellBroadcastReceiver

Ảnh chụp màn hình sau đây hiển thị menu cài đặt ứng dụng CellBroadcastReceiver.

Menu cài đặt ứng dụng CellBroadcastReceiver

Hình 2. Menu cài đặt ứng dụng CellBroadcastReceiver

Lịch sử cảnh báo khẩn cấp

Hình 3. Màn hình lịch sử cảnh báo khẩn cấp

Thêm biểu tượng khởi chạy

Bạn có thể cho phép truy cập lịch sử tin nhắn CellBroadcast từ trình khởi chạy ứng dụng và thông qua các biểu tượng khởi chạy của riêng bạn.

  • Để cho phép truy cập lịch sử tin nhắn từ trình khởi chạy ứng dụng, hãy ghi đè cấu hình sau bằng RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Để ghi đè biểu tượng mặc định của AOSP, hãy ghi đè cấu hình sau bằng RRO.

    <!-- Customize launcher icon for cellbroadcast history -->
    <item type="mipmap" name="ic_launcher_cell_broadcast" />
    

Bật mã bí mật CMAS

Để bật mã bí mật CMAS, * # * # CMAS # * # * ( * # * # 2627 # * # * trên bàn phím quay số), ứng dụng quay số phải nghe mã trình quay số đặc biệt ở dạng * # * # code # * # * và xử lý mã bằng phương thức công khai sendDialerSpecialCode .

Yêu cầu thông tin khu vực: Kênh 50

Kênh 50 là kênh đặc biệt dành cho các nhà mạng phát thông tin liên quan đến khu vực (trừ MTN ở Nam Phi). Đối với kênh này, tin nhắn quảng bá không dẫn đến hộp thoại bật lên hoặc thông báo. Thay vào đó, tin nhắn quảng bá xuất hiện trong trạng thái SIM của menu Cài đặt hoặc trên thanh trạng thái (ví dụ: hiển thị mã ZIP).

Việc triển khai Android CellBroadcastService cung cấp hỗ trợ cho các API sau trong dịch vụ phát sóng di động cho các ứng dụng Cài đặt và SysUI để nhận thông tin Kênh 50 phát sóng. Để thực hiện điều này, hãy làm như sau:

  • Đăng ký quảng bá android.telephony.action.AREA_INFO_UPDATED và ghi đè tên gói người nhận config_area_info_receiver_packages thông qua RRO.

  • Liên kết với CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

Vì ứng dụng Cài đặt và SysUI nằm ngoài phạm vi của mô-đun CellBroadcast, bạn phải triển khai các thay đổi của mình trong SystemUI hoặc ứng dụng Cài đặt để cung cấp hỗ trợ đầu cuối. Để biết cách triển khai tham chiếu, hãy tham khảo ứng dụng Cài đặt CellBroadcastService .

Tùy chỉnh

Bạn không thể sửa đổi trực tiếp mã nguồn của mô-đun CellBroadcast, nhưng bạn có thể sử dụng lớp phủ tài nguyên thời gian chạy (RRO) để bật (hoặc tắt) các tham số (ví dụ: bạn có thể tùy chỉnh màu của thông báo và kích thước trên hộp thoại). Để ghi đè các giá trị mặc định của các tham số được sử dụng trong mô-đun CellBroadcast, hãy thay đổi tên gói đích thành com.google.android.cellbroadcastreceiver . Thêm vao Đoa:

  • Để biết danh sách các cấu hình có thể phủ, hãy tham khảo overlayable.xml .

  • Để biết cách triển khai ví dụ, hãy tham khảo RROSampleTestApp trong AOSP.

Nếu quá trình triển khai thiếu tài nguyên dịch chuỗi giao diện người dùng hoặc nếu bản dịch không đáp ứng mong đợi của bạn, bạn có thể ghi đè tài nguyên dịch bằng RRO hoặc làm việc với nhóm dịch của Google để ngược dòng bản dịch chuỗi lên mô-đun CellBroadcast. Nếu bạn ghi đè các tài nguyên dịch, Google phải hiển thị các chuỗi đó trong overlayable.xml để cho phép ghi đè. Nếu bạn cần thêm cấu hình để tùy chỉnh giao diện người dùng, hãy liên hệ với nhóm hỗ trợ CellBroadcast .

Di chuyển dữ liệu

Android 11 bao gồm một ứng dụng CellBroadcast kế thừa, đây là một cơ chế để lưu giữ và di chuyển dữ liệu ứng dụng (bao gồm cài đặt người dùng và lịch sử cảnh báo khẩn cấp) cho các thiết bị nâng cấp lên mô-đun CellBroadcast. Các triển khai Android sử dụng mô-đun CellBroadcast phải bao gồm ứng dụng CellBroadcast kế thừa trong bản dựng của chúng để di chuyển dữ liệu. Nếu việc triển khai của bạn sử dụng giải pháp CellBroadcast tùy chỉnh, bạn nên xác định APK CellBroadcastContentProvider để bảo toàn dữ liệu (bạn có thể xóa APK phát sóng di động cũ một cách an toàn trong bản phát hành tiếp theo).

Trên các thiết bị được nâng cấp để sử dụng mô-đun CellBroadcast, mô-đun này tìm nạp dữ liệu từ AOSP LegacyCellBroadcastApp hoặc APK CellBroadcastContentProvider do OEM xác định thông qua cơ quan cellbroadcast-legacy được xác định rõ.

Sử dụng APK CellBroadcastContentProvider do OEM xác định

Khi xác định APK CellBroadcastContentProvider, APK phải tuân theo các thông số kỹ thuật này.

  • APK là APK không có đầu chỉ hiển thị nội dung của cơ sở dữ liệu và SharedPreferences của nó thông qua đối tượng ContentProvider với quyền cellbroadcast-legacy và ứng dụng của bên thứ ba không thể truy cập được.

  • APK được phát triển và sở hữu bởi OEM, nơi OEM có thể tiếp tục lưu trữ lược đồ API ẩn của họ.

Để di chuyển SharedPreferences sang mô-đun CellBroadcast, APK CellBroadcastContentProvider phải hỗ trợ phương thức ContentProvider.call ) với các tham số sau:

  • Cơ quan: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Phương pháp: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    Đây là danh sách các khóa tùy chọn được chia sẻ được hỗ trợ cho mô-đun CellBroadcast. Dữ liệu đến từ SharedPreferences cho phương thức ContentProvider.call .

Để di chuyển lịch sử tin nhắn sang mô-đun CellBroadcast, APK CellBroadcastContentProvider phải hỗ trợ phương thức ContentProvider.query với các tham số sau:

  • Cơ quan: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . Các cột truy vấn liệt kê các thuộc tính thông báo được hỗ trợ cho mô-đun CellBroadcast. Lấy dữ liệu (từ cơ sở dữ liệu của bạn) cho phương thức ContentProvider.query .

Để biết cách triển khai tham chiếu cho CellBroadcastContentProvider, hãy tham khảo LegacyCellBroadcastContentProvider .

Thử nghiệm

Bộ kiểm tra tính tương thích của Android (CTS) xác minh chức năng của các API hệ thống phụ thuộc vào ứng dụng. Bạn cũng có thể chạy unit tests/testappsp .

Nếu OEM đã bật mã bí mật CMAS cho một thiết bị, thiết bị đó có thể hỗ trợ chế độ gỡ lỗi với các tính năng sau.

  • Cảnh báo kiểm tra được nhóm trong Cảnh báo khác với nút bật / tắt.

  • Lịch sử bao gồm tất cả các tin nhắn đã được nhận nhưng không được hiển thị, chẳng hạn như các tin nhắn trùng lặp hoặc các tin nhắn bằng ngôn ngữ khác.

  • Tin nhắn hiển thị tất cả các thông số có sẵn, bao gồm số sê-ri, ID tin nhắn và ngày hết hạn.

Để bật chế độ gỡ lỗi, hãy quay số * # * # CMAS # * # * trên trình quay số.

Tiếp xúc

Để biết thêm chi tiết hoặc câu hỏi về mô-đun CellBroadcast, hãy liên hệ với nhóm hỗ trợ CellBroadcast .