RCS Google メッセージのアーカイブ

背景

このドキュメントでは、Google メッセージの RCS アーカイブ機能を統合、テスト、検証する方法について説明します。

ソリューションの概要

  • クライアントサイドのアーカイブ: アーカイブ ベンダーは、IT 管理者が管理対象デバイスにデプロイするための Android アプリを開発する必要があります。
  • Google メッセージによるサポート: この機能を使用するには、Google メッセージをデフォルトのメッセージ アプリに設定する必要があります。IT 管理者は、Android Enterprise の制御を使用してデフォルトを適用できます。
  • Android Enterprise が必要: この機能はフルマネージド デバイスでのみ利用できます。

ワークフロー

RCS メッセージのアーカイブのワークフロー
図 1. RCS アーカイブ ワークフロー。
  1. IT 管理者が Android Enterprise を使用してアーカイブ アプリをデプロイします。
  2. 省略可: IT 管理者が Android Enterprise コントロールを使用してアーカイブ アプリをプログラムで設定します。
    • 必須:
      • アーカイブ アプリには READ_SMS 権限が必要です
    • 推奨:
      • Google メッセージとアーカイブ アプリに対するユーザー制御を禁止
      • IT 管理者が Google メッセージをデフォルトの SMS/RCS クライアントとして適用する
      • アーカイブ ソリューションが MCM をサポートしている場合、IT 管理者は MCM を使用してアーカイブ アプリを事前登録することもできます。
  3. IT 管理者が MCM を使用して Google メッセージでアーカイブを有効にします。
  4. Google メッセージは、メッセージ イベントでメッセージ データを Android に書き込みます。メッセージ イベントは、メッセージの送信、メッセージの受信、メッセージの編集、メッセージの削除のいずれかです。
  5. Google メッセージは、RCS メッセージと SMS/MMS メッセージの両方について、新着メッセージ イベントをアーカイブ アプリに通知します。
  6. アーカイブ アプリは、Telephony プロバイダからメッセージ データを読み取ります。
  7. アーカイブ アプリは更新をバッチ処理してサーバーに送信します。

実装

Google メッセージの MCM スキーマ

アーカイブは、Google メッセージで messages_archival キーを使用して構成されます。このキーは、管理者がパッケージ名でアーカイブ管理アプリを指定するための文字列値を受け取ります。値が空、null、またはキーが存在しない場合、アーカイブは無効になります。値が指定されている場合、アーカイブが有効になり、Google メッセージはメッセージ イベントで指定されたパッケージ名に明示的なブロードキャストを送信します。

アーカイブ管理アプリへの通知

  • 明示的なブロードキャストが指定されたアーカイブ アプリに送信されます。アクションは GOOGLE_MESSAGES_ARCHIVAL_UPDATE です。
  • 場合によっては、メッセージ URI がブロードキャスト エクストラに含まれることがあります。これは、ブロードキャストをトリガーしたメッセージを取得するために使用できます。 com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI

アーカイブ アプリの要件

必須:

  • FOREGROUND_SERVICE 権限を要求します。
  • マニフェストでフォアグラウンド サービスを宣言します。これには、アーカイブ更新ブロードキャストのインテント フィルタが含まれ、Google メッセージのみがサービスを開始できるように権限が付与されています。
<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>
  • そのサービスを実装して、インテントを処理し、テレフォニーから読み取り、テレフォニーの以前の状態と現在の状態を比較してメッセージ イベントのタイプを特定し、アーカイブ サービス バックエンドにアップロードするメッセージ イベントと、次のイベントで比較するテレフォニーの更新された状態の両方をキャッシュに保存します。

推奨:

  • JobScheduler を使用して、メッセージ イベントをサーバーに一括更新します。

    • IT 管理者は、アプリが強制終了されたり、アプリデータがユーザーによって削除されたりしないようにすることで、バッチ更新が想定どおりに実行されるようにすることができます。
    • フォアグラウンド サービスの時間を重要なアーカイブ要件のみに最小限に抑えることで、ユーザー エクスペリエンスとシステムの健全性への影響を最小限に抑えることができます。
  • MCM を使用してアプリのプログラムによる構成を有効にします(Messages MCM スキーマを参照)。これにより、ユーザーは手動でログインしたり、サーバー登録の詳細を指定したりする必要がなくなります。

テスト

実装をテストするには、TestDPC またはお好みの EMM クライアントを使用します。