Lưu trữ tin nhắn RCS trong Google Tin nhắn

Thông tin khái quát

Tài liệu này trình bày cách tích hợp, kiểm thử và xác thực tính năng lưu trữ RCS trong ứng dụng Google Tin nhắn.

Tổng quan về giải pháp

  • Lưu trữ phía máy khách: Các nhà cung cấp dịch vụ lưu trữ cần phát triển một ứng dụng Android để quản trị viên CNTT triển khai trên các thiết bị được quản lý.
  • Sử dụng Google Tin nhắn: Tính năng này yêu cầu Google Tin nhắn là ứng dụng nhắn tin mặc định. Quản trị viên CNTT có thể sử dụng các chế độ kiểm soát của Android Enterprise để thực thi chế độ mặc định.
  • Yêu cầu Android Enterprise: Tính năng này chỉ có trên các thiết bị do công ty quản lý hoàn toàn.

Luồng công việc

Quy trình lưu trữ tin nhắn RCS
Hình 1. Quy trình lưu trữ RCS.
  1. Quản trị viên CNTT triển khai ứng dụng lưu trữ bằng Android Enterprise.
  2. Không bắt buộc: Quản trị viên CNTT định cấu hình ứng dụng lưu trữ theo cách lập trình bằng các chế độ kiểm soát Android Enterprise.
    • Bắt buộc:
      • Ứng dụng lưu trữ cần có quyền READ_SMS
    • Đề xuất:
      • Không cho phép người dùng kiểm soát Google Tin nhắn và ứng dụng lưu trữ
      • Quản trị viên CNTT áp dụng Google Tin nhắn làm ứng dụng SMS/RCS mặc định
      • Ngoài ra, quản trị viên CNTT cũng có thể đăng ký trước ứng dụng lưu trữ bằng MCM, nếu giải pháp lưu trữ hỗ trợ MCM
  3. Quản trị viên CNTT bật tính năng lưu trữ trong Google Tin nhắn bằng MCM.
  4. Google Tin nhắn ghi dữ liệu tin nhắn vào Android khi có sự kiện tin nhắn. Sự kiện tin nhắn là một trong những sự kiện sau: tin nhắn đã gửi, tin nhắn đã nhận, tin nhắn đã chỉnh sửa hoặc tin nhắn đã xoá.
  5. Google Tin nhắn thông báo cho ứng dụng lưu trữ về sự kiện tin nhắn mới, đối với cả tin nhắn RCS và SMS/MMS.
  6. Ứng dụng lưu trữ sẽ đọc dữ liệu tin nhắn từ trình cung cấp Telephony.
  7. Ứng dụng lưu trữ sẽ phân chia các bản cập nhật theo lô và gửi chúng đến máy chủ.

Triển khai

Lược đồ MCM của Google Tin nhắn

Tính năng lưu trữ được định cấu hình trong Google Tin nhắn bằng khoá messages_archival. Khoá này chấp nhận một giá trị chuỗi để quản trị viên chỉ định ứng dụng lưu trữ theo tên gói. Nếu giá trị trống, rỗng hoặc không có khoá, thì tính năng lưu trữ sẽ bị tắt. Nếu bạn chỉ định giá trị, thì tính năng lưu trữ sẽ được bật và Google Tin nhắn sẽ gửi một thông báo truyền tin rõ ràng đến tên gói đã chỉ định trong một sự kiện tin nhắn.

Thông báo đến ứng dụng lưu trữ

  • Thông báo truyền tin tường minh được gửi đến ứng dụng lưu trữ đã chỉ định, với thao tác: GOOGLE_MESSAGES_ARCHIVAL_UPDATE
  • Trong một số trường hợp, URI tin nhắn sẽ được đưa vào các phần bổ sung của thông báo truyền tin. Bạn có thể dùng URI này để tìm nạp tin nhắn đã kích hoạt thông báo truyền tin: com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI

Yêu cầu đối với ứng dụng lưu trữ

Bắt buộc:

  • Khai báo quyền FOREGROUND_SERVICE.
  • Khai báo một dịch vụ trên nền trước trong tệp kê khai của bạn, bao gồm bộ lọc ý định cho thông báo cập nhật lưu trữ và được cấp quyền để đảm bảo chỉ Google Tin nhắn mới có thể bắt đầu dịch vụ.
<service
        android:enabled="true"
        android:foregroundServiceType="shortService"
        android:name=".TestService"
        android:exported="true"
        android:permission="android.permission.WRITE_SMS">
      <intent-filter>
        <action android:name="GOOGLE_MESSAGES_ARCHIVAL_UPDATE" />
      </intent-filter>
</service>
  • Triển khai dịch vụ đó để xử lý ý định, đọc từ dịch vụ điện thoại và xác định loại sự kiện tin nhắn bằng cách so sánh trạng thái trước đó của dịch vụ điện thoại với trạng thái hiện tại, sau đó lưu cả sự kiện tin nhắn vào bộ nhớ đệm để tải lên phần phụ trợ dịch vụ lưu trữ và trạng thái đã cập nhật của dịch vụ điện thoại để so sánh với sự kiện tiếp theo.

Đề xuất:

  • Cập nhật hàng loạt các sự kiện tin nhắn lên máy chủ bằng JobScheduler.

    • Quản trị viên CNTT có thể đảm bảo ứng dụng của bạn không bị người dùng tắt hoặc dữ liệu ứng dụng của bạn không bị xoá, nhờ đó đảm bảo các bản cập nhật theo lô có thể diễn ra như mong đợi.
    • Giảm thiểu thời gian chạy dịch vụ trên nền trước chỉ còn yêu cầu lưu trữ quan trọng sẽ giảm thiểu tác động đến trải nghiệm người dùng và tình trạng hệ thống.
  • Cho phép định cấu hình ứng dụng của bạn theo cách có lập trình bằng MCM (như đề cập trong sơ đồ MCM của Messages), để người dùng không cần đăng nhập hoặc chỉ định thông tin đăng ký máy chủ theo cách thủ công.

Thử nghiệm

Để kiểm thử việc triển khai, hãy sử dụng TestDPC hoặc ứng dụng EMM mà bạn muốn.